C語言中陣列的初始化問題
C語言中陣列的初始化問題
一維陣列
Int a[] = {1,2,3,4} //用數去填充
Int a[3] = {1,2,3} //指定大小
Int a[3] = {0} // 都是預設為0
如果不指定初值的話,編譯器會給它指定一個初值,比如int型就是-858993460
二維陣列
int a[][] = {{1,2,3,4},{5,6,7}} //用數去填充 2*4
Int a[2][4] = {{1,2,3,4},{5,6,7}}
Int a[2][4] = {0} //指定其預設值為0
如果不指定初值的話,編譯器會給它指定一個初值,比如int型就是-858993460
程式碼:
#include <stdio.h>
void main(){
int a[3][3];
int i =0 ,j = 0 ;
for(i=0; i<3; i++){
for(j=0;j<3;j++){
printf("%3d",a[i][j]) ;
}
putchar('\n');
}
int x ;
printf("%d",x);
}
字元陣列
Char str[] = {“yes”} ; //等同於 char str[] = “yes”
Char str[10] ;如果不給它賦初值,那麼它會預設為“燙“
關於計算char陣列的長度
#include<stdio.h>
#include<string.h>
void main(){
char str[9]="12345678"; //這裡是“123456789“的話,就會發生陣列越界,會報錯。 printf("%d",strlen(str)); //輸出的是8
}
其實,大小為9的char陣列只能存8個字元,因為最後要留一個來填充‘\0’,即字元陣列的結束標誌。