不初始化数组,存储的是无用的数值,但是部分初始化数组,未初始化的元素则被设置为0

声明数组时可以不指定大小,让编译器自动匹配数组大小和初始化列表的项目数目。此时用sizeof来计算数组的大小。

 

 
  
  1. #include<stdio.h> 
  2.  
  3.  
  4. int main(void){ 
  5.     const int days[]={1,2,3,4,5,6,7,8,9,10}; 
  6.     printf("%d",sizeof days / sizeof days[0]);//sizeof数组名得到整个数组的大小(字节数)
  7. //sizeof一个元素,得到一个数组元素的大小(字节数) 

数组赋值有以下形式

1.可以在声明的时候直接初始化

2.可以在声明后使用循环初始化

3.其他形式都是不允许的

 

 
  
  1. #include<stdio.h> 
  2. #define SIZE 5 
  3.  
  4. int main(void){ 
  5.     int oxen[SIZE] = {5,3,2,8};//正确 
  6.     int yaks[SIZE]; 
  7.     int count; 
  8.  
  9.     yaks = oxen;//错误 
  10.     yaks[SIZE] = oxen[SIZE];//错误 
  11.     yaks[SIZE] = {5,3,2,8};//错误 
  12.      
  13.     for(count=1;count<SIZE;count++){//正确 
  14.         yaks[count] = 2 * count; 
  15.     } 

编译器不会检查索引的合法性,这样允许C程序运行的更快。

声明数组时最好使用整型常量,也可以使用变量声明变长数组VAL。

 

 
  
  1. #include<stdio.h> 
  2. #define SIZE 5 
  3.  
  4. int main(void){ 
  5.     int oxen[SIZE];//使用整型常量声明  
  6.     int n = 3; 
  7.     int arr[n];//声明了一个变长数组