定義數組數組
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