C语言的数组
定义数组
int arr[3] ;//定义数组 arr[0] = 1;//进行赋值 arr[1] = 2; arr[2] = 3;
当定义数组之后,arr就为一个常量,代表数组的地址,就是&arr[0]的地址
int arr[3] = {1,2,3};//定义数组 int b = arr; int c = &arr[0]; printf("b === %d\n",b); printf("c === %d\n",c);
打印结果:
b === -272632276 c === -272632276
可以看出结果是一样的。
C语言对数组越界是不做处理的,例如
int arr[3] = {1,2,3};//定义数组 int a = &arr[0]; int b = &arr[1]; int c = &arr[2]; int d = &arr[3]; printf("a == %d\n",a); printf("b == %d\n",b); printf("c == %d\n",c); printf("d == %d\n",d);
打印结果:
a == -272632276 b == -272632272 c == -272632268 d == -272632264
从结果可以看出c并没有进行处理,arr[3]已经超出了数组的长度,但还是打印出了arr[3]的地址
posted on 2018-05-29 09:26 Left-knife 阅读(460) 评论(0) 编辑 收藏 举报