C语言sizeof数组名

数组名不是首元素的指针咩,为什么sizeof数组名能够知道数组长度

数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。这种误解的根源在于国内某著名的C程序设计教程(出版量最多的那本破书)。

数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;指向数组的指针则是另外一种变量类型,仅仅意味着数组的存放地址!

sizeof(a)为什么等于40呢,因为数组这种结构保存了数组的大小,有的书说这个值保存在数组首地址前面的内存中(这一点,我没验证)。最简单的方法你就记着,数组名不是普通的指针。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-03
前一个list+1说的是C语言中的指针加法,+1表示向后偏移一个单位,这个单位的长度等于指针所指数据类型的长度,即int型的长度;后一个list+sizeof(int)说的是实际偏移的字节数,也就是1个单位等于1个int型所占用的字节数(通常是4个字节)。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网