Loading

04-数组

数组元素个数

Line13 这里的 p 是指针变量,p[0] 应该不存在的,怎么能这样用?

  • C 语言中可以用指针表示数组的每一个元素。本质上,对同一个对象有两种不同的符号表示。如定义:a[n] ~ *(a+n),即寻址到内存 a,然后移动 n 个单元,再取出数组。故 p[0] ~ *(p+0),该值的类型为 int
  • num2 的计算在语法上没有任何问题,但是 32 位机和 64 位运行结果不同,在 32 位机器出现结果正常,64 位机出现错误结果。这是因为:64 位机中,int* 的指针为 8 个字节

a 和 &a 的区别

  • a 和 &a 输出结果相同,但是二者数据类型不同!
    • a:数组首元素的地址,同时与整个数组地址重合。但其不能代表整个数组,只能代表起始元素的地址
    • &a:整个数组的地址
  • a+1 和 &a+1 地址上差了 20 个字节
    • a+1a + sizeof(a[0])
    • &a+1:整块数组所占字节数总数为单位 1

数组名

数组名不占内存空间

数组名是一个符号常量

posted @ 2020-09-04 12:21  tree6x7  阅读(126)  评论(0编辑  收藏  举报