- 相關(guān)推薦
C語(yǔ)言-15:多維數(shù)組與指針
C語(yǔ)言中指針與數(shù)組的關(guān)系密不可分,同時(shí)C語(yǔ)言規(guī)定多維數(shù)組名也是一個(gè)指針,例如二維數(shù)組a[3][5],a[3]便是一個(gè)指針。那這又有怎樣的應(yīng)用呢?
C語(yǔ)言-15:多維數(shù)組與指針
C-Free
例:
1、打開(kāi)C-Free,新建文件。
2
輸入以下內(nèi)容:
#include
main()
{
char stu[4][4][10];
int i,j;
printf("請(qǐng)輸入4個(gè)項(xiàng)目 ");
for(j=0;j<4;j++){
printf("項(xiàng)目%d:",j+1);
scanf("%s",stu[0][j]);
}
printf("請(qǐng)輸入3個(gè)%s ",stu[0][0]);
for(j=1;j<4;j++){
printf("第%d個(gè)%s:",j,stu[0][0]);
scanf("%s",stu[j][0]);
}
for(i=1;i<4;i++)
for(j=1;j<4;j++){
printf("請(qǐng)輸入%s的%s:",stu[i][0],stu[0][j]);
scanf("%s",stu[i][j]);
}
printf("情況如下: ");
for(i=0;i<4;i++){
for(j=0;j<4;j++)printf(" %s",stu[i][j]);
printf(" ");
}
}
3
運(yùn)行結(jié)果如圖:
說(shuō)明:
char stu[4][4][10];這里定義了一個(gè)三維的字符數(shù)組總共有4x4x10個(gè)元素,但是例中,最后一維即[10]是用來(lái)儲(chǔ)存字符串的,因此一共有4x4個(gè)項(xiàng)目。
1【C語(yǔ)言-12】多個(gè)數(shù)據(jù)的統(tǒng)一化處理(數(shù)組)1【C語(yǔ)言-13】字符數(shù)組
在開(kāi)始便提到過(guò),對(duì)于二維數(shù)組a[3][5],a[3]是一個(gè)指針,因此stu[0][j]也是一個(gè)指針。
0【C語(yǔ)言-14】數(shù)據(jù)的門牌號(hào)——指針
我們還記得scanf函數(shù)里有一個(gè)&,這個(gè)&便是取地址的意識(shí),故在scanf("%s",&word);中&word是個(gè)地址,因此當(dāng)后面的變量本身就是一個(gè)指針時(shí),便不需要加&了,如例中:scanf("%s",stu[0][j]); 便沒(méi)有加&。
注意:在數(shù)組中,字符串是不可以存儲(chǔ)到一個(gè)變量中的,字符串始終是以數(shù)組的形式儲(chǔ)存的,如以前提到過(guò)的
char word[10];
scanf("%s",&word); //見(jiàn)《【C語(yǔ)言-02】向系統(tǒng)輸入內(nèi)容文字(字符串)》
這個(gè)word其實(shí)就是一個(gè)數(shù)組。
0【C語(yǔ)言-02】向系統(tǒng)輸入內(nèi)容文字(字符串)
因此像例中一樣,要輸出一個(gè)二維的帶字符串的項(xiàng)目,必須定義3維數(shù)組,如圖:
【C語(yǔ)言-15:多維數(shù)組與指針】相關(guān)文章:
如何使用C語(yǔ)言數(shù)組指針09-14
C語(yǔ)言中指針與數(shù)組的區(qū)別10-09
C語(yǔ)言指針和數(shù)組基礎(chǔ)知識(shí)10-26
C語(yǔ)言指針的概念08-20
什么是C語(yǔ)言數(shù)組10-03
C語(yǔ)言數(shù)組教程08-31
C語(yǔ)言指針函數(shù)和函數(shù)指針詳解09-29
C語(yǔ)言的指針類型詳解05-21
如何理解C語(yǔ)言指針05-19