如何将int的值打印为char?

时间:2015-07-17 06:31:16

标签: c printf

在以下程序中,int如何将char转换为printf()?它是否被隐含地降级了?

#include<stdio.h>
int main()   
{ 
    int c=2;
    printf("%c",c);

}

2 个答案:

答案 0 :(得分:3)

代码工作正常!您将获得c的ASCII字符。 让我们看另一个例子:

int c;
for (c = 97; c < 123; c++)
{
    printf("%c",c);
}

此代码将生成以下输出:

abcdefghijklmnopqrstuvwxyz

如果c的值大于char的最大值,则输出刚刚从begin开始。这意味着c = 1将产生与c = 257相同的输出。

答案 1 :(得分:2)

在您的代码中,

  printf("%c",c);

有效,因为,根据C11标准,章节§7.21.6.1, fprintf()函数%c格式说明符,

  

c

     

如果不存在l长度修饰符,则int参数将转换为   unsigned char,并写出结果字符。

因此,c保留的值将转换为unsigned char,然后将使用%c格式说明符打印出来。

相关问题