我試圖在數組中使用單個字符,然後使用特定的語法打印該字符。這裏是我的代碼:將字符掃描到C中的數組中
int main(){
char in[18];
scanf("%c",in);
printf("%c",in);
return 0;
}
我知道如何把一個角色從用戶使用C &許多其他的方式做同樣的任務,但我很好奇,想知道爲什麼這段代碼打印在屏幕上什麼都沒有。這是我對這段代碼的解釋。如果錯了,請糾正我。
- 首先聲明18個字符的數組。
- 使用
scanf
,字符存儲在陣列的第一位置。(「中」指的是它的第一個元素的地址。) - 然後,當我試圖打印字符,不打印輸出。
- 當我將「in」更改爲「in [0]」時,字符會在屏幕上打印。
- 我認爲「in」也指向第一個元素以及[0]。那麼爲什麼我會得到兩個不同的答案。 ?
在此先感謝!
'**'衰變**爲'char *'。 'printf'需要一個'char'。那麼你認爲會發生什麼? 'in'本身就是一個數組,而不是指針! – Olaf
我最近從Java切換到C。這就是爲什麼這個愚蠢的錯誤。感謝您澄清我的疑問。 – monsterspy
我建議你仔細閱讀一本好C書。這些語言之間有很多不同的概念。 C並不妨礙你射擊你的腳。 – Olaf