您的位置:首页 > 其它

C陷阱与缺陷三.1

2014-01-10 18:28 232 查看
理解数组与指针的概念

#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;
}



从上面结果可以看出二维数组一个一位数组的一位数组。其实整个内存都是一维的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c 二维数组