一个指针的有关问题.
一个指针的问题....
#include <iostream.h>
void main()
{
int *p=new int[10];
//p=new int[10];
int *n;
n=new int;
*n=10;
cout < < "n= " < <n < < " (n是地址) *n= " < <*n < <endl;
if(!p)
{
cout < < "内存分配失败! ";
}
for(int i=0;i <10;i++)
{
p[i]=i;
cout < < "p[ " < <i < < "]= " < <p[i] < < " 为什么此处p[i]是数值??? " < <endl;
}
delete [10]p;
delete n;
}
为什么p[i]是数值???
------解决方案--------------------
呵呵,这个问题, p[i] 相当于*(p + i), 这是基本语法呀,
还要提醒一句 delete [10]p; 在我知道的编译器中的除了cfront,现代编译器
几乎都会无视[10]中的参数10, 写delete [] p就可以了.
------解决方案--------------------
int *p=new int[10];
p 是指针,
所以, p[i] 就是指针指向的第i个元素,是 int 类型的 ~
------解决方案--------------------
int * p = new int[10];
p就是指向数组的首地址,p[i]就等 *(p+i);
------解决方案--------------------
p[i] 就相当于 *(p + i) 已经被解引用了的, 如果是(p + i)就是地址
#include <iostream.h>
void main()
{
int *p=new int[10];
//p=new int[10];
int *n;
n=new int;
*n=10;
cout < < "n= " < <n < < " (n是地址) *n= " < <*n < <endl;
if(!p)
{
cout < < "内存分配失败! ";
}
for(int i=0;i <10;i++)
{
p[i]=i;
cout < < "p[ " < <i < < "]= " < <p[i] < < " 为什么此处p[i]是数值??? " < <endl;
}
delete [10]p;
delete n;
}
为什么p[i]是数值???
------解决方案--------------------
呵呵,这个问题, p[i] 相当于*(p + i), 这是基本语法呀,
还要提醒一句 delete [10]p; 在我知道的编译器中的除了cfront,现代编译器
几乎都会无视[10]中的参数10, 写delete [] p就可以了.
------解决方案--------------------
int *p=new int[10];
p 是指针,
所以, p[i] 就是指针指向的第i个元素,是 int 类型的 ~
------解决方案--------------------
int * p = new int[10];
p就是指向数组的首地址,p[i]就等 *(p+i);
------解决方案--------------------
p[i] 就相当于 *(p + i) 已经被解引用了的, 如果是(p + i)就是地址