一维 数组名 为指针常量 的原因

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:50:45
一维 数组名 实际上是指向数组第一个元素的指针常量 ,所以-----对于数组a[6],我们不能对表示地址的a进行a++操作。

问题:为什么不规定成指针变量,规定成常量究竟是有什么优点。

请大家帮忙解答一下,谢谢。

这也不是什么规定.这与数组的存储方式有关,你知道,数组在定义后,只要程序运行了,系统就会为它分配一个连续的存储单元,每个存储单元都是有确定的地址的.而数组名就对应着那个连续的存储单元的首地址,即第一个元素的地址,它就代表这个地址,这是个定值,也就是常量.因为指针的内容都是地址,数组名的内容也是地址,所以,才有数组名是指针常量这一说.这个词实际就是说数组名就是一个地址常量.既是常量,怎么能对它赋值呢?2就是2,你可以对它再进行赋值动作吗?不知我这样说,你是否能明白.就这样,朋友.

因为a一经定义之后其地址是固定不变的,所以是常量,常被用来赋值给指针,如int *p=a;