1樓:匿名使用者
1全部原因:你定義的a[2][2]是這樣排列的:
a b c
d \0 \0
\0 \0 \0
而a相當於a[0].%s所以則要輸出第一行abc,因為沒有'\0'結尾。所以繼續輸出d。
而這是不規範的。
如果你想以這樣的方式輸出字串,可以擴大範圍。a[2][2]換成a[4][4]
舉例.:
char star[8][8]=;
for(i=0;i<=7;i++)
printf("%s",star[i]);
2樓:關注
printf("%s",a)輸出字元陣列時必須保證陣列a中存在結束字元'\0';這樣才不會越界。
改為#include
int main ()
; //結束標誌'\0'
printf("%s\n",a);
}試一試就知道了
第二種方法是printf("%c",a[i][j])逐個字元輸出
3樓:匿名使用者
//二維陣列應該這樣輸出吧
#include
int main()
;int i,j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%c",a[i][j]);
printf("\n");
return 0;}
c語言 陣列未知個數 怎麼宣告,C語言 陣列未知個數 怎麼宣告
風若遠去何人留 c語言在陣列個數未知的情況下,根據應用情況不同,有三種方式。1,陣列元素總數未知,但是需要儲存的內容是已知的。其實這是一種變相的已知個數,只是程式設計者不去計算總個數,把這個工作交給系統來做。這時可以通過陣列個數留空,顯式初始化陣列進行宣告。比如char s this is a te...
c語言陣列宣告問題,C語言中定義陣列時對其全部初始化為1的問題
有初始化的陣列定義可以省略方括號中的陣列大小。例如,下面的 中陣列定義為5個元素 int a 如 char str program 編譯時必須知道陣列的大小。如果陣列大小要根據運 況來確定,可以使用動態陣列 int p int calloc num,sizeof int 一般有四種陣列定義方式,以一...
微控制器C語言陣列賦值求助,C語言一維陣列賦值方法
陣列只能在定義的時候整體賦值,不能在之後這樣用。所以你只能寫成 uchar frist 5 而不能寫成 uchar frist 5 frist 5 如果你真的要在之後賦值,特別是每個成員不一樣,你只能用迴圈或者手動乙個乙個賦值。或者先把所有值放在另外乙個數值然後memcpy給目標陣列。uchar 你...