数组
变长数组
c99以后支持。
但边长数组不支持初始化
数组的初始化
int arr[]={1,2,3,4,5,};
char arr[]=“advdg”;6个元素,\0也是一个元素
char arr[]={'a','b','c',};
char arr[]={'a',98,'c',}; 98是b的acsll码值,相当于98==‘b’
不完全初始化,剩余的元素默认为0,
int arr[10]={0};
int arr[]={0}; 默认一个元素了
省略数组的大小时,数组必须初始化,数组的大小是根据初始化的内容来确定。
求数组大小
sizeof(arr)/sizeof(srr【0】)
sizeof(arr)为总长度,单位是字节,一个大概是四个字节。后面分母是算一个元素的长度。单位字节。
数组的地址
数组在内存中是连续存放的
%p打印地址
二维数组
二维数组的初始化
int arr[4][5]={{1,2,3,4,5,},{5,4,6,9,8},{4,5,6,8,9,1}};
二维数组即使初始化了,行是可以省略的,列不能省略。
数组越界
c语言本身是不做数组下标的越界检查。