不初始化数组,存储的是无用的数值,但是部分初始化数组,未初始化的元素则被设置为0
声明数组时可以不指定大小,让编译器自动匹配数组大小和初始化列表的项目数目。此时用sizeof来计算数组的大小。
- #include<stdio.h>
- int main(void){
- const int days[]={1,2,3,4,5,6,7,8,9,10};
- printf("%d",sizeof days / sizeof days[0]);//sizeof数组名得到整个数组的大小(字节数)
- //sizeof一个元素,得到一个数组元素的大小(字节数)
- }
数组赋值有以下形式
1.可以在声明的时候直接初始化
2.可以在声明后使用循环初始化
3.其他形式都是不允许的
- #include<stdio.h>
- #define SIZE 5
- int main(void){
- int oxen[SIZE] = {5,3,2,8};//正确
- int yaks[SIZE];
- int count;
- yaks = oxen;//错误
- yaks[SIZE] = oxen[SIZE];//错误
- yaks[SIZE] = {5,3,2,8};//错误
- for(count=1;count<SIZE;count++){//正确
- yaks[count] = 2 * count;
- }
- }
编译器不会检查索引的合法性,这样允许C程序运行的更快。
声明数组时最好使用整型常量,也可以使用变量声明变长数组VAL。
- #include<stdio.h>
- #define SIZE 5
- int main(void){
- int oxen[SIZE];//使用整型常量声明
- int n = 3;
- int arr[n];//声明了一个变长数组
- }
转载于:https://blog.51cto.com/fanaticssk/826623