簡體   English   中英

為什么 char 不能工作但 int 可以

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM