#include<stdio.h>
int main()
{
char ch = '1' ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
#include<stdio.h>
int main()
{
char ch = 1 ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
這兩個char聲明的區別是什麼?哪一個是正確的?這兩個char聲明有什麼區別?哪一個是正確的?
#include<stdio.h>
int main()
{
char ch = '1' ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
#include<stdio.h>
int main()
{
char ch = 1 ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
這兩個char聲明的區別是什麼?哪一個是正確的?這兩個char聲明有什麼區別?哪一個是正確的?
的第一段代碼分配字符'1'
,其具有ASCII值爲49.將其作爲字符打印將產生1
,而作爲數字打印將產生49
。
第二段代碼分配值1.將它打印爲字符會產生一個帶有實現定義表示的不可打印字符,而將其打印爲數字將產生1
。
至於哪個「正確」,取決於你想如何使用它。
第一個,
char c = '1';
是指派的1 (decimal 49)第二個中的ASCII值,
char c = 1;
被分配ASCII值1 (decimal 1, SOH "start of heading")。
因此,現在,不要問哪一個是正確的,你可以決定,因爲兩者都是有效的,所以哪個是正確的取決於你的意圖。
當然,「1」的值是實現定義的,不一定是ASCII。 –
有一個ascii表,你應該注意char '1' != 1
。
在十進制值'1'
是49
正確的方法是使用單引號爲所需的炭像這樣
char c = 'a'
正確的是什麼情況? –
如果您希望兩者都得到相同的結果,請執行'char ch = 49'(因爲49是'1'的ASCII碼) – Dominique
更好的學習方法是運行代碼。或者,更好的方法是獲取一本'c'書並學習。 – KevinDTimm