前言
printf可能是我们在学习C语言的过程中最早接触的库函数了。其基本使用想必我们都已经非常清楚了。但是下面的这些情况你是否已经清楚地知道了呢?
示例程序
我们来看一个示例程序,看看你能否对下面的结果输出有非常清晰的认识。
#include <stdio.h>
int main(void)
{
int a = 4;
int b = 3;
int c = a/b;
float d = *(float*)(&c);
long long e = 0xffffffffffffffff;
printf("a/b:%f,a:%d\n",a/b,a,b); //打印0
printf("(float)a/b:%f\n",((float)a)/b); //打印1
printf("(double)a/b:%lf\n",((double)a)/b);//打印2
printf("d:%f\n",d); //打印3
printf("%.*f\n",20,(double)a/b); //打印4
printf("e:%d,a:%d\n",e,a); //打印5
printf("a:%d,++a:%d,a++:%d\n",a,++a,a++); //打印6
return 0;
}
编译为32位程序:
gcc -m32 -o test test.c
在运行之前,你可以自己先猜想一下打印结果会是什么。实际运行结果:
a/b:0.000000,a:3 //打印0的结果
(float)a/b:1.333333 //打印1的结果
(double)a/b:1.333333 //打印2的结果
d:0.000000 &nbs