[英]Why can't char works but int does
char array[]= {1,2,3,4,5,6,7,8,9,1,2,3,6,7};
printf("%c\n", array[5]);
這將返回“”。 但是當我將 char 更改為 int 時,它會打印“5”。 我 tot char 可以接受從 -128 到 127 的數字嗎?
int array[]= {1,2,3,4,5,6,7,8,9,1,2,3,6,7};
printf("%i\n", array[5]);
當您打印char
,C 假定存儲的值應該表示ASCII編碼文本。 訪問array[5]
產生值6
,它對應於 ASCII 值ACK
。 此字符不可打印,這就是您看不到輸出的原因。
字符6
由 ASCII 值54
。 要生成此值,請使用char
文字'6'
。
例如,嘗試將數組初始化為:
char array[]= {'1','2','3','4','5','6','7','8','9','1','2','3','6','7'};
這將導致您期望的行為。
或者,您可以通過在第一個代碼段中使用標志%i
代替%c
將字符打印為格式化整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.