为了账号安全,请及时绑定邮箱和手机立即绑定

这就行啦?最后一个不用输?和运行结果也不一样啊,求解!

C语言   2-8  自动类型转换

55af77920001316f02340104.jpg

55af779300011bfc01740169.jpg

55af77930001241305000524.jpg


正在回答

2 回答

第7行 由于没写分号,而且后边又写了注释,于是和第8行的代码变成了一句,于是变成了:

#include <stdio.h>
int main()
{
    char c = 'a';
    int n =c;         //将c赋值给n
    float f =  c;     //将c赋值给f
    double d = printf("%d\n",n);
    printf("%f\n",f);
    printf("%lf\n",d);
    return 0;    
}

1.double d=printf("%d\n",n); 其中int n=c;字符a被强制转换类型,根据ASCII表 a对应的值为97。printf函数将97打印出来,得到第一行结果 97。printf函数返回值为输出的字符串的长度,因为输出的字符为97和一个 换行符,所以字符串长度为3,即d=3.000000

2. printf("%f\n",f); 字符a强制转换成浮点型,得到97.000000

3.那么问题来了。根据1的分析,输出了3.000000

所以少年啊 第7行你少写了个c;

1 回复 有任何疑惑可以回复我~

噢,第七行和第八行是一句

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这就行啦?最后一个不用输?和运行结果也不一样啊,求解!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信