[C语言]细枝末节(二)——%d和%i

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    int N;
    scanf_s("%i",&N);
    printf("%d
",N);
    system("pause");
    return 0;
}

相同点:

在printf格式串中使用时,%d和%i没有区别;

不同点:

在scanf_s中使用时,%d只能与十进制形式的整数相匹配,%i能够匹配八进制、十进制和十六进制;

如果输入的数字中,有前缀0(例如056),那么%i会将其作为八进制数;

如果输入的数字中,有前缀0x或者0X(例如0X56或者0x56),那么%i会将其作为十六进制数;

在进行进制转换的时候适当使用%i会有很好的效果。

原文地址:https://www.cnblogs.com/LeeCookies/p/12773410.html