我曾经问过自己一次。我不知道它做了什么?
例如:
1。代码
char a = 'h';
printf("%i", (int)a); /// Conversion 'a' to int, and again conversion to int by modifier %i. Right?
如果我这样写的话 - 你会说:这是错的!
2。代码
printf("%i", a);
为什么,这是错的?我们转换' a'通过修饰符%i输入int类型,然后输出。
1和2代码有什么区别?
P.S为什么我不能像在C ++中那样通过' cout'类似物?
答案 0 :(得分:2)
像
这样的代码 printf("%i", a);
是正确的,因为printf()
是一个可变参数函数,对于它的参数,默认参数提升规则适用,a
将被提升为int
,无论如何。
像
这样的代码 printf("%i", (int)a);
也是正确的,但演员阵容完全没必要。