1、数组的创建
数组时一组相同类型元素的集合,一维数组格式为:
type_t arr_name [const_n];
type_t arr_name[const_n][const_m];
type_t是数组元素类型;const_n/m是常量表达式,指定数组大小,不可使用变量。
其中,const_n可以缺省,const_m不能缺省;二维数组中的每一行又可以视为n个一维数组,名称为arr_name[0],arr_name[1]......arr_name[n-1]。
2、数组的初始化
(1)不完全初始化:未初始化部分为0;如int arr[7]={1,2,3}, char str[5]={‘a’,‘b’,‘c’}
(2)完全初始化:全部赋初值;如int arr[2]={1,2},char str[3]={‘a’,‘b’,‘c’}
3、数组的访问或使用
(1)使用下标[]访问或使用数组元素,下标均从0开始;数组在内存中是连续存放的;
(2)数组大小可通过计算求得,常用操作符sizeof或库函数strlen来计算,其中sizeof是计算数组元素所占空间的大小,单位是字节,计算结果包括“\0”;strlen是计算字符串的长度,用于char类型数组,遇“\0”终止,计算结果不包括“\0”;
(3)除以下2种情况外,数组名的引用均代表数组中第一个元素的地址
a.单独与sizeof搭配:sizeof(数组名),此时数组名表示整个数组,计算的是整个数组的大小,单位是字节;
b.单独与&搭配:&数组名,此时数组名代表整个数组,取出整个数组的地址。
验证:int arr[]={1,2,3};
printf("%p\n",arr);
printf("%p\n",arr+1);
printf("%p\n",&arr[0]);
printf("%p\n",&arr[0]+1);
printf("%p\n",&arr);
printf("%p\n",&arr+1);