示例代碼字符:嘗試打印存儲在一個2維數組
char map [20][20];
map [0] [0]=1;
printf ("%s\n", map[0][0]);
在編譯過程中,我得到這樣的警告:
warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’
雖然如果我寫printf ("%s\n", &map[0][0]);
它在某種程度上正常工作。
這是爲什麼?
編輯:
對不起我的壞傑夫。如果我試試這個
map [0][0]='X';
printf ("%s\n", map[0][0]);
我仍然得到同樣的警告。
這將是有益的如果你用你正在使用的語言標記你的問題。 –
你正在試圖打印什麼?你的兩個格式字符串都表明你正在嘗試打印一個*字符串*,但是你的問題和可變參數被推入到'printf()'調用中,這表明你正在嘗試打印一個*單字符*。那麼你想要什麼?一個字符串(即map [0])或一個char(即map [0] [0])? – WhozCraig