实验目的:
用printf函数正确输出整型变量的值时需要使用与变量类型相适应的格式字符串,如有符号数用%d、无符号数用%u,此外还需根据变量所标识存储单元的长度选用适当的修饰符。一般而言,short型用长度修饰符h,long型用长度修饰符l,int型不加。如果不匹配时会出现什么情况呢?这是本次实验需要解决的问题之一。长度修饰符对scanf函数有何影响是本次实验需要解决的另一个问题。
实验步骤:
1.分析下面程序的输出
#include <stdio.h>
void main()
{
long i, j, k;
i = 0x80000001;
j = 0x80008001;
k = 0x00008001;
printf("%ld,%ld,%ld\n", i, j, k);
printf("%hd,%hd,%hd\n", i, j, k);
}
long型变量 |
i |
j |
k |
初始值为 |
0x80000001 |
0x80008001 |
0x00008001 |
存储状态为 |
|
|
|
以%ld格式预期的输出为 |