数组在内存中
数组存放在内存中的栈上,编译时确定数组的大小,运行时才给其分配内存
数组在内存中连续存放,且由低地址向高地址方向存储数据,栈上的两个变量之间有两个哨位兵(占4字节)进行保护,可以防止数组越界
#include <stdio.h>
int main()
{
int arr[5] = { 12,23,34,45,56 }; //定义一个数组,有5个元素,每个元素都是int型,下标从零到四
printf(" %d %d %d %d %d\n", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]); //打印各元素的地址
return 0;
}
结果:13629376 13629376 13629380 13629384 13629388 13629392
验证可知,数组在内存中连续存放,每个元素数据类型相同
数组名
像const修饰的变量值不可以改变,也就是说这种变量不能被赋新值,那么他不能做左值,数组名代表数组首元素的首地址,注意不是数组的首地址.即arr等价于&arr[0]
#include <stdio.h>
int main()
{
int arr[5] = { 12,23,34,45,56 }; //定义一个数组,有5个元素,每个元素都是int型,下标从零到四
printf("%d %d\n