定义数组数组
int arr[3] ;//定义数组 arr[0] = 1;//进行赋值 arr[1] = 2; arr[2] = 3;
当定义数组以后,arr就为一个常量,表明数组的地址,就是&arr[0]的地址spa
int arr[3] = {1,2,3};//定义数组 int b = arr; int c = &arr[0]; printf("b === %d\n",b); printf("c === %d\n",c);
打印结果:code
b === -272632276 c === -272632276
能够看出结果是同样的。blog
C语言对数组越界是不作处理的,例如class
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]的地址di