首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

数组和指针区别讨论,该怎么解决

2012-02-13 
数组和指针区别讨论在大部分的时候,大多数的人认为数组名和指针的功能是一样的,现在inta[10]{0,1,2,3,4,5

数组和指针区别讨论
在大部分的时候,大多数的人认为数组名和指针的功能是一样的,现在
int   a[10]={0,1,2,3,4,5,6,7,8,9};
int   *p=a;
cout < <*(p+1) < <endl;                     //正确
p++;                                                   //正确
a++;                                                   //报错


按理说,数组名是指向当前数组的首地址,但是如果把它也当成一个指针的时候,应该可以进行自加操作,而且该操作的范围还是在指针的有效范围内,但是为什么会报错呢~而如果用指针就可以!

现在想发起一个讨论,大伙说下数组名和指针的具体区别!

[解决办法]
a++之后怎么用呢?

再用也是代表數組a的首地址。

所以不能a++;
[解决办法]
再补充一下
a是代表一个数组,不是数组名不是代表一个数组的首地址
只有在给指针赋值时,数组名才代表一个数组的首地址,在其他代码中,数组代表一块连续的内存

int a[10] ; 申请一个数组
int *p;
p=a; 与 p=&a[0]是等价的
这时,a可以代表数组数地址
[解决办法]
因为a[10]是个数组,a是个常量,所以不能自加

热点排行