我想知道printf函数中%D,%d和%i之间的区别是什么,因为它们都显示整数,那么为什么有3种格式来显示整数?这三种格式之间一定有区别吗?
编辑:我也要求%D,不仅仅是%i和%d.
首先,%D不是标准.
当谈到%d并且%i,输出没有区别(例如:)printf,正如评论中的一些用户和Oliver Charlesworth对他的回答所指出的那样.
但是,对于输入数据(例如:),scanf您可以使用%i扫描十六进制值(如果前面带有0x)或八进制(如果前面带有0).其默认行为将扫描十进制值.
例如:如果你使用%ilike 输入一些数据0x28,它将与40dec 相同.
编辑:一些代码作为示例:
#include <stdio.h>
int main(){
int dec, hex;
scanf("%i",&hex); //For example, hex = 0x28
scanf("%d",&dec); //For example, dec = 28
printf("Hex: %d\nDec: %d\n",hex,dec); // outputs: Hex = 40, Dec = 28
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |