关于数组和sizeof 的问题, 一下讨论正确吗?请大家给审查一下
考考你:myArray为数组名,当你用sizeof(myArray)时,返回的是整个数组的size,这么说数组的第一个元素的地址里头,也就是"myArray"里头不但储存了第一个元素的值,同时也储存了数组元素的个数?
tiyer says:
sizeof 是一个宏,不是函数
Kai <TInt32> says:
反正他能根据数组第一个元素地址判断数组大小,所命第一个元素肯定存了数组大小的信息
Kai <TInt32> says:
起码里头存了,比如数组元素的个数
tiyer says:
不是啊,sizeof是一个宏,编译时候就直接得到的
tiyer says:
不用存的
tiyer says:
这个是由编译器编译时候决定的
tiyer says:
像 sizeof(int) ,你说地址在什么地方啊?
Kai <TInt32> says:
那倒是
Kai <TInt32> says:
我就是感兴趣数组size的信息是存在那里的呢?
tiyer says:
赫赫,这个啊
tiyer says:
你得问编译器了
Kai <TInt32> says:
可能是当你初始化一个数组的时候,那个size可能被存在什么地方乐吧
Kai <TInt32> says:
我觉得还是和数组的第一个元素有关系
tiyer says:
没有的,编译时候就已经替换了
Kai <TInt32> says:
否则为什么通过第一个元素的地址就能得到size呢
Kai <TInt32> says:
从什么替换成什么呢
tiyer says:
在编译时候,编译器会自动分析数组的定义
tiyer says:
现在编译器不是那么傻的
Kai <TInt32> says:
那么你的意思是,他会通过数组第一个元素的地址找到数组的定义信息对吗?