printf()函数的用法
1.printf()函数的调用格式为: printf("<格式化字符串>",<参量表>);
// __stdcall
int __cdecl printf(const char *p,...);
... 可变参数
printf在打印浮点数,不论原来是双精度还是单精度,都变为双精度(8字节)
打印1字节(char)2字节(short)4字节(int)==>4字节 ,除了long long (8字节)
void main()
{
int a=10;
folat ft=12.25f;
printf("%d %d\n",a,ft);
}
%d 格式控制符--不具有强转能力
A 格式化字符串包括两部分内容:
一部分是正常字符,
另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。
1. d/i 有符号十进制形式输出(正数不输出符号)
2. u 无符号十进制形式输出
3. o 无符号八进制形式输出(不输出前缀0)
4. x 无符号十六进制形式输出(不输出前缀Ox),并以小写abcdef表示。
5. X 无符号十六进制形式输出(不输出前缀Ox),并以大写ABCDEF表示。
6. c 输出单个字符
7. s 输出字符串
8. f 以小数形式输出单、双精度实数
9. E/e 用科学计数法表示浮点数
10.G/g 以%f或%e中较短的输出宽度输出单、双精度实数
+++++++++
void main()
{
long long x=0x12345678901357;
printf("%x \n",x);//=>78 90 13 57
printf("%lx \n",x);//=>78 90 13 57
printf("%llx \n",x);//=>12345678901357
}
B 参量表
需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应
例题:
void main()
{
char a=128;
printf("%d \n",a);//=>-128
printf("%x \n",a);//=>ffff ff80
}
当printf调用,a给可变参数,自然而然扩展为4字节,a是有符号数,扩展的时候加符号位
1111 1111 1111 1111 1111 1000 0000=>ffff ff80
unsigned char a=128;
printf("%x \n",a);==>80