数组名有自己的空间吗?
int arr[5];
请问arr有自己的空间吗?
数组名 纯C
[解决办法]
指针是一个变量,变量的值是另外一个变量的地址。那么,既然指针是变量,那么指针必然有自己的存储空间,只不过是该存储空间内的值是一个地址值,而不是别的内容。而数组名是数组的首元素的地址(即它是个地址常量),而不是用于存储地址变量值的指针变量.所以数组名是不需要存储空间的.
[解决办法]
所有的表识符号在运行时都已经消失,只有其值(比如枚举量)或地址(比如函数,数组,变量等)得以保留,说白了那些名字只是给我们自己看的。所以不占用空间。
[解决办法]
楼主这命题就歧义。arr[0]-arr[4]不算arr的空间?
好了不咬文嚼字,3楼如果是说你所谓的arr的空间,我理解是编译时要给arr分配符号表中的空间吧。。汇编里我记得对于数组是需要把首地址存起来的,不然每次使用数组元素都硬编码地址的话有效率问题
[解决办法]
楼主别看国产的垃圾书了.
看C PRIMER去吧.
数组名不是指针.
[解决办法]
10楼所犯错误是,把编译器为进行编译而使用的临时内存空间与语言为其使用的实体所分配的空间混为一谈,为利于编译而使用的临时存储并不是语言的一部分。这种错误认识本质上就是从汇编理解C/C++导致的。
验证的方法非常简单,&a只会得到a所代表的数组对象的地址,到无法得到编译器为其分配的临时空间地址,因为这个临时空间根本就不是语言的一部分。
[解决办法]
这个问题提得不规范 你说的数组名 空间
[解决办法]
偶也想写得浅出,但是通俗的语言只会造就更多歧义,无法不用专业术语,如果你有疑问或者不同意见,一起讨论就是。
[解决办法]