如何在里面工作printf?

时间:2017-02-16 10:39:18

标签: c casting printf

我曾经问过自己一次。我不知道它做了什么?

例如:

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'类似物?

1 个答案:

答案 0 :(得分:2)

这样的代码
 printf("%i", a);

是正确的,因为printf()是一个可变参数函数,对于它的参数,默认参数提升规则适用,a将被提升为int,无论如何。

这样的代码
 printf("%i", (int)a); 

也是正确的,但演员阵容完全没必要。