簡體   English   中英

%d格式說明符如何工作?

[英]How does %d format specifier work?

 #include<stdio.h>
 main()
 {
     char x ;
     x = 'a' ;
     printf("%d",x);
 }

在這個%d格式說明符中應該讀取4個字節是整數格式說明符,但x是一個字符僅存儲在1個字節中。 所以剩下的3個字節應該有垃圾值,輸出應該是隨機的。 但輸出始終為97,這是'a'的ASCII值。 任何人都可以告訴格式說明符如何工作?

函數參數與函數的聲明參數類型不匹配(即因為函數允許變量參數,如printf ,或者因為沒有提供函數原型)經歷默認參數提升 (參見C11 6.5.2.2),將char值轉換為intunsigned int的值。 因此,通過aprintf相匹配的要求%d

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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