C陷阱与缺陷三.1
2014-01-10 18:28
232 查看
理解数组与指针的概念
指针在32位机器上占4字节。
虽然我们可以用 *a 给数组元素赋值,但是a不是指向首地址的指针,其实只是一个引用。
sizeof()计算的是cal所分配的字节长。12*13*4 每个int占4字节。
cal是指向数组的指针。 int( *cal)[ 31 ], *cal 是一个拥有13个整型元素的数组,cal则是指向这样数组的指针。
#include<stdio.h>
int main()
{
int cal[12][13];
printf("%d\n",sizeof(cal[11]));
return 0;
}
从上面结果可以看出二维数组一个一位数组的一位数组。其实整个内存都是一维的。
#include<stdio.h> int main() { int cal[12]; printf("%d\n",sizeof(cal)); return 0; }
指针在32位机器上占4字节。
虽然我们可以用 *a 给数组元素赋值,但是a不是指向首地址的指针,其实只是一个引用。
int cal[12][13];该数组拥有12个数组类型的元素,每个元素都是拥有13个整型数。
#include<stdio.h> int main() { int cal[12][13]; printf("%d\n",sizeof(cal)); return 0; }
sizeof()计算的是cal所分配的字节长。12*13*4 每个int占4字节。
cal是指向数组的指针。 int( *cal)[ 31 ], *cal 是一个拥有13个整型元素的数组,cal则是指向这样数组的指针。
#include<stdio.h>
int main()
{
int cal[12][13];
printf("%d\n",sizeof(cal[11]));
return 0;
}
从上面结果可以看出二维数组一个一位数组的一位数组。其实整个内存都是一维的。