char c;
c = '2';
printf("%d\n",c);
所以這個問題是從我的測驗,它是問什麼是顯示。答案是50,我嘗試了使用程序,但爲什麼它是50?不是2還是什麼?在char數據類型中的撇號
char c;
c = '2';
printf("%d\n",c);
所以這個問題是從我的測驗,它是問什麼是顯示。答案是50,我嘗試了使用程序,但爲什麼它是50?不是2還是什麼?在char數據類型中的撇號
撇號的意思是「字符常量」,即'2'
不是整數2,而是字符2,即使用的字形來表示單個數字2
您打印printf()
使用%d
這個值,這意味着「有符號整數」,讓您得到字符的整數值,通常被稱爲「碼點」(或者,經典,它是「ASCII值」)。
我覺得你的代碼是不是100%乾淨,因爲char
可能是unsigned
,你應該轉換爲(int)
在調用清楚,因爲int
是什麼%d
期待。
您打印char '2'
,作爲int '%d'
,還等什麼會打印,是其ASCII value
看來你的系統(像今天的大多數系統)正在使用[ASCII字符集](http://www.ascii-code.com/)。如果你檢查鏈接,你可能會明白爲什麼'2'== 50'。 – 2014-10-06 13:53:26
此外,請嘗試在未來爲您的問題提出更好的標題。這個問題與撇號無關。 – 2014-10-06 13:55:03