数组名是指针,为什么sizeof(数组名)还是数组的大小
2014-08-30 22:07
246 查看
数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。这种误解的根源在于国内某著名的C程序设计教程(出版量最多的那本破书)。
数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;指向数组的指针则是另外一种变量类型,仅仅意味着数组的存放地址!
sizeof(a)为什么等于40呢,因为数组这种结构保存了数组的大小,有的书说这个值保存在数组首地址前面的内存中(这一点,我没验证)。最简单的方法你就记着,数组名不是普通的指针。
数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;指向数组的指针则是另外一种变量类型,仅仅意味着数组的存放地址!
sizeof(a)为什么等于40呢,因为数组这种结构保存了数组的大小,有的书说这个值保存在数组首地址前面的内存中(这一点,我没验证)。最简单的方法你就记着,数组名不是普通的指针。
相关文章推荐
- 为什么sizeof取不到extern的数组大小
- sizeof()函数求类型所占字节大小-指针,数组
- 形参中的数组,实际是一个指针。sizeof为4,其他地方为数组大小
- sizeof应用于虚参形式的数组时,得到的结果是4(指针大小) k&r 5-4
- 简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
- 数组与指针的sizeof大小
- sizeof()为什么不能得到指针指向内容的大小
- sizeof求struct、指针、数组的大小
- 当数组是函数的参数时, 为什么sizeof 不能正确报告数组的大小?
- 简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
- [转]内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 堆、栈、字符数组、字符指针和Sizeof()
- C语言中数组名和指针的区别 及 sizeof用法
- 字符数组、字符指针和sizeof值得注意的地方。。
- sizeof 数组与指针
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 数组为什么速度慢于指针
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- C语言中 sizeof 操作符使用时的一些细节 和 指针类型的大小
- C的试验田-指向数组的指针练习,并对数组内的字母大小转化