大星星 发表于 2017-9-1 23:57:51

转换说明的一点小问题

麻烦大佬们看一下
#include <stdio.h>
int main(void)
{
      int a=66;
      printf("%c,%f,%d\n",a,a,a);
      return 0;
}
输出结果是B,         0.000000,            134513696
第一个B我理解,第二个是因为int类型的值没有转换成float型,但是第三个怎么想都想不通啊,明明是int型转换说明也是%d,为什么输出不是66啊,很迷,谢谢看题的各位大佬了{:10_285:} {:10_247:}

ba21 发表于 2017-9-2 00:03:21

去掉%f吧。int 66,用%f输入肯定是不正确的。
不同编译器 加了 %f的效果都不一样。我这根本就执行不了。

大星星 发表于 2017-9-2 10:32:40

ba21 发表于 2017-9-2 00:03
去掉%f吧。int 66,用%f输入肯定是不正确的。
不同编译器 加了 %f的效果都不一样。我这根本就执行不了。

大佬,这三个转换说明不应该是独立的么我中间有加,分开啊,我先试试去掉%f是什么情况

ba21 发表于 2017-9-2 10:34:25

大星星 发表于 2017-9-2 10:32
大佬,这三个转换说明不应该是独立的么我中间有加,分开啊,我先试试去掉%f是什么情况


你一个程序中,错语的语法,跟正确的语法也都是独立的。按你的说法那也应该可以运行咯。

大星星 发表于 2017-9-2 10:36:52

ba21 发表于 2017-9-2 00:03
去掉%f吧。int 66,用%f输入肯定是不正确的。
不同编译器 加了 %f的效果都不一样。我这根本就执行不了。

怎么去掉%f就显示正常了,这三个不应该是独立的转换说明么。

大星星 发表于 2017-9-2 10:40:30

ba21 发表于 2017-9-2 10:34
你一个程序中,错语的语法,跟正确的语法也都是独立的。按你的说法那也应该可以运行咯。

涨姿势了,原来并不是相互独立的{:10_277:}
页: [1]
查看完整版本: 转换说明的一点小问题