您好,登錄后才能下訂單哦!
小編今天帶大家了解C語言中的二維數組該怎么理解,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“C語言中的二維數組該怎么理解”的知識吧。
引入一個想法: 一個變量:相當于一個點。 一維數組(也就是數組):點匯聚成為一條直線。 二維數組:直線匯聚成一個平面。 三維數組:平面匯聚成立體圖形。
類型 數組名[常量表達式][常量表達式]
int a[6][6];//6*6,6行6列
char b[4][5];//4*5,4行5列
double c[6][3];//6*3,6行3列
數組名[下標][下標]
a[0][0];//訪問a數組中第一行第一列的元素
b[1][3];//訪問b數組中第二行第四列的元素
c[3][3];訪問c數組中第四行第四列的元素
同樣要注意下標的取值范圍,以防止數組的越界訪問。
—比如int a[3][4],其“行下標”的取值范圍是0 ~ 2,“列下標”的取值范圍是 0 ~ 3,超出任何一個下標的訪問都是越界訪問。(非常容易中招)
二維數組在內存中是線性存放的,因此可以將所有的數據寫在一個花括號內:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
為了更直觀的表示元素的分布,可以用大括號將每一行的元素括起來:
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
或者
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
二維數組也可以僅對部分元素賦初值:
int a[3][4]={{1},{5},{9}};
如果希望整個二維數組初始化為0,呢么直接在大括號里寫一個0即可:
int a[3][4]={0};
C99同樣增加了一種新特性:指定初始化的元素。這樣就可以只對數組中的某些指定元素進行初始哈賦值,而未被賦值的元素自動初始化為0:
int a[3][4]={[0][0]=1,[1][1]=2,[2][2]=3};
二維數組的初始化也能偷懶,讓編譯器根據元素的數量計算數組的長度。但只有第1維的元素個數可以不寫,其他維度必須加上:
int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
例一:二維數組的舒服寫法:
1 #include<stdio.h> 2 int main() 3 { 4 int a[3][4]={ 5 {1,2,3,4}, 6 {5,6,7,8}, 7 {9,10,11,12} 8 }; 9 int i,j; 10 for(i=0;i<3;i++) 11 { 12 for(j=0;j<4;j++) 13 { 14 printf("%d ",a[i][j]); 15 } 16 printf("\n"); 17 } 18 printf("\n"); 19 return 0; 20 }
例二:對前三行每一行的第一個元素賦初值,其他沒有被賦值的自動補充為0:
1 #include<stdio.h> 2 int main() 3 { 4 int a[3][4]={{1},{2},{5}}; 5 //把前三行每一行的第一個元素賦初值,其他沒有被賦值的自動補充為0。 6 //如果賦值的數,多于三個,后面的會報錯,并且自動不算數。 7 //如果沒有對數組進行賦值,則得出的結果為隨機數。 8 int i,j; 9 for(i=0;i<3;i++) 10 { 11 for(j=0;j<4;j++) 12 { 13 printf("%d ",a[i][j]); 14 } 15 printf("\n"); 16 } 17 return 0; 18 } 1 #include<stdio.h> 2 int main() 3 { 4 int a[3][4]={{1},{2},{5}}; 5 //把前三行每一行的第一個元素賦初值,其他沒有被賦值的自動補充為0。 6 //如果賦值的數,多于三個,后面的會報錯,并且自動不算數。 7 //如果沒有對數組進行賦值,則得出的結果為隨機數。 8 int i,j; 9 for(i=0;i<3;i++) 10 { 11 for(j=0;j<4;j++) 12 { 13 printf("%d ",a[i][j]); 14 } 15 printf("\n"); 16 } 17 return 0; 18 }
例三:指定數組元素,其他元素自動補充為0:
1 #include<stdio.h> 2 int main() 3 { 4 int a[3][4]={[2][3]=1,[2][1]=8,[1][2]=5}; 5 int i,j; 6 for(i=0;i<3;i++) 7 { 8 for(j=0;j<4;j++) 9 { 10 printf("%d ",a[i][j]); 11 } 12 printf("\n"); 13 } 14 return 0; 15 }
例四:證明只有第一維可以不寫數值:
1 #include<stdio.h> 2 int main() 3 { 4 int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};//只有第一維可以不寫 5 int i,j; 6 for(i=0;i<3;i++) 7 { 8 for(j=0;j<4;j++) 9 { 10 printf("%d ",a[i][j]); 11 } 12 printf("\n"); 13 } 14 return 0; 15 }
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發,使用C語言可以以簡易的方式編譯、處理低級存儲器。
感謝大家的閱讀,以上就是“C語言中的二維數組該怎么理解”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。