請解釋一下下面這段代碼..查詢關於字符操作
printf("%c\n",0+'0'); --> returns 0
printf("%c\n",1+'0'); --> returns 1
printf("%c\n",0+'1'); --> returns 1
printf("%c\n",1+'1'); --> returns 2
感謝名單。
請解釋一下下面這段代碼..查詢關於字符操作
printf("%c\n",0+'0'); --> returns 0
printf("%c\n",1+'0'); --> returns 1
printf("%c\n",0+'1'); --> returns 1
printf("%c\n",1+'1'); --> returns 2
感謝名單。
看看ASCII table。 '0'有代碼48.所以'0'+ 1產生49,這是'1'。所以每個字符實際上是一個整數。你給它添加另一個整數,然後,因爲你在printf中指定了「%c」,所以你強制它把它看作一個字符。他檢查他的ASCII表格,經過一番考慮後,他決定將輸出打印到屏幕上。
'0'
給出ASCII
char 0
的值,即48
。要添加0
以獲得48
。然後,您打印48
追溯到這給0
同樣下一個加1
到48
給49
,當打印爲焦炭提供了1
感謝%c
個個打印字符等效參數的字符。
printf("%c\n",0+'0');
添加零到作爲48的字符零的ASCII值:48 + 0 = 48
嘗試printf("%d\n", '0');
獲得的ASCII值。
printf("%c\n",1+'0'); // 1 + 48 = 49 which is the character `1`
printf("%c\n",0+'1'); // 0 + 49 which is again `1`
printf("%c\n",1+'1'); //left as an exercise
怎麼樣谷歌,維基百科,......之前你問這裏? – 2010-05-10 07:21:07
@Holger:請指定一個僅使用上述代碼元素返回有用答案的Google查詢。 – 2010-05-10 07:22:18
@Aaron:http://www.cplusplus.com/reference/clibrary/cstdio/printf/是第一個使用關鍵字printf的谷歌搜索引擎 – 2010-05-10 07:50:36