C语言中以整数的形式输入一个char,我们没有办法,必须要先输入给一个整数,再交给那个char的类型。这句话如何理解???

C语言中以整数的形式输入一个char,我们没有办法,必须要先输入给一个整数,再交给那个char的类型。这句话感觉看了很多资料还是没懂

我在Dev C++5.7.1上试过如下代码

#include<stdio.h>
int main()
{
    char a = 0;
    scanf("%d",&a);
    printf("%d",a);

    return 0;
}

它在编译运行时并没有报错,但是我直接给它用%d输入的整数,感觉与上述问题是矛盾的,求大牛帮忙解决!!!

3个回答

这要看这句话是什么人在什么场合说的,相对照什么于什么。这么空口一说,谁知道他想说什么。
既然你程序这么写没问题,那么就说明2个可能,要么是你理解的意思和这句话想说的意思不是一个意思,要么说这句话的人搞错了。这就无从稽考了。

你的问题说的是以“整数形式输入一个char”,scanf("%d",&a)的意思是“以整数形式输入一个整数并将其放到a所在的地址”。
数据类型不同肯定不能scanf输入,不过赋值是会自动类型转换,所以可以。

Hliang_
Hliang_ 但是scanf不是一定需要明确知道后面的变量大小吗?
11 个月之前 回复

隐式类型转换 实际上是将整数类型的值赋给了char类型 如果键入的值大于256会“截断”

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐