c語言-二維數組

二維數組

定義格式

數據類型[行數][列數] = {值};

整形數組爲例:

a[3][4]  = {1,2,3};// a[1] ={ 1 ,2, 3}; a[2] ={0} ;a[3] = {0}

a[][4] = {1,2 ,3,4,5};這種情況下列數已經給出 ,由後面的個數可以確定前面的行數,所以二維必須不能省,一維可以省

當然 a[ ][ ]這種都省的情況下肯定錯誤, 系統無法判斷出是幾行幾列

使用:

下標從0開始 a[2][3] = {1,2,3,4,5,6};

//整個數據是這樣存在的 a[0][0], a[0][1], a[0][2],a[1][0],a[1][1], a[1][2];可以單獨賦值

遍歷:

使用雙重for循環進行遍歷

for (int i = 0;i < 2; i++){

for(int j = 0;j < 3; j++)
{

printf("%d", a[i][j]);

}

}

字符串數組即字符的二維數組:

char string[3][20] = {"hello", "how are you","good"};

字符串數組即裏面存放的是字符串,字符串即字符數組

string[1], string[2], string[3]即是首地址;故在使用%s輸入的時候不需要加&,可以和下面的對照

char str[3] = {'h', 'o',  '\0'};

scanf("%s", str);//str即是數組的首地址

故對上述二維字符數組的賦值可以使用如下方式

for (int i = 0; i< 3; i ++){

scanf("%s", string[i]);

}

對於字符串數組的遍歷可以採用兩種方式

1.即是雙從for循環 (如上整形數組不在贅述) 2.即是使用%s進行輸出

for(int i = 0;i < 3; i++){

printf("%s", string[i]);

}

注意:凡是涉及到對字符串的比較和賦值不能使用 > <或者=這些運算符 而是使用 strcmp(字符串1,字符串2); strcpy(字符串1,字符串2)這些字符串的函數,計算長度就用 strlen;在結構體中也要注意要使用strcpy(student.name, "lili");



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章