根據K & R C部分1.6,char
是一種整數。那麼爲什麼我們需要%c
。爲什麼我們不能使用%d
?爲什麼在C中使用%c?
2
A
回答
22
因爲%d
將打印char
的數字字符的代碼:
printf("%d", 'a');
打印97
(一個ASCII系統上),而
printf("%c", 'a');
打印a
。
+1
不要忘記'scanf':'%d'讀取並轉換數字字符串,其中'%c'讀取和轉換單個字符。 –
1
4
雖然它是一個整數,但%c
將其數值解釋爲顯示的字符值。例如,對於字符a
:
如果使用%d
你會得到一個整數,例如,97字符的內部表示使用%c
顯示字符a
VS
'a
'本身(如果使用ASCII)
即,這是一個內部表示形式 vs(例如printf
)
1
如果您使用%c
,您將打印(或掃描)字符或字符。如果您使用%d
,您將打印(或掃描)一個整數。
printf("%d", 0x70);
機器將如何知道您要輸出一個字符,而不是其相應的ASCII值?
-1
%d認爲字符是32位並打印它像一個整數,但%c轉換字符的int值爲ASCII字符然後打印它。
-1
%d
是用來打印decimal(integer)
數量,同時%c
用來打印character
。如果你嘗試打印字符與%d
格式的計算機將打印字符的ASCII
代碼。
相關問題
- 1. 爲什麼在C#中使用Connection.GetHashCode?
- 2. 爲什麼在c#中使用事件?
- 3. 爲什麼在C++中使用if-else?
- 4. 爲什麼在Objective-C中使用@class?
- 5. 爲什麼在C中使用指針?
- 6. 爲什麼不在C++中使用printf()
- 7. 爲什麼或者爲什麼不在C++中使用memset?
- 8. c#:爲什麼使用DLLs?
- 9. C#爲什麼使用SuspendLayout()?
- 10. 在C#和C++中使用嵌套類 - 爲什麼和何時?
- 11. 爲什麼non-extern可以在C/C++中使用.h文件?
- 12. 爲什麼需要兩個括號在c/C++中使用宏?
- 13. 爲什麼在C/C++中使用uint_8等?
- 14. 爲什麼在C++中使用c字符串?
- 15. 爲什麼用C
- 16. 爲什麼在C++
- 17. 爲什麼在C#
- 18. 爲什麼在C#只讀使用
- 19. 爲什麼在Objective-C是@class使用
- 20. 什麼時候和爲什麼我會在C++中使用abs
- 21. 在C++中使用'〜'有什麼用?
- 22. 爲什麼在C++中(C++)*(C++)未定義的行爲?
- 23. C++爲什麼要使用引用?
- 24. 爲什麼在c#中使用「public」不好使用
- 25. 爲什麼在C++名稱空間周圍使用extern「C」
- 26. 什麼時候在C#中使用類?
- 27. 什麼時候在C++中使用「declare」?
- 28. 爲什麼我不能在函數中使用outf在C++中
- 29. 什麼是C#中的字段,我爲什麼要使用它?
- 30. 爲什麼要使用堆棧?爲什麼不只是堆? - C/C++
char是一個8位整數 –
@MaziarBouali不一定。 – Pubby
'printf'需要知道參數的大小以便打印它(適當地轉換它,這樣說)。一個'char'的大小爲1,'int'至少在大多數機器上更多。另外,使用'%c'時,你想要打印一個字符,而不是一個數字。 在'D'語言中,您總是會使用'%s',讓編譯器擔心類型。 – Matej