[求助]pintf中%lu 连用的问题
#include<stdio.h>
int main(void)
{
printf("%lu\n",21);
system("pause");
}
输出结果是4292542461.
这个值应该是系统所能使用的一个最大的值.
有两个问题想请教:
1.为什么会是这个结果?
2.%lu两个参数的顺序对程序有什么影响?
#include<stdio.h>
int main(void)
{
printf("%lu\n",21);
system("pause");
}
输出结果是4292542461.
这个值应该是系统所能使用的一个最大的值.
有两个问题想请教:
1.为什么会是这个结果?
2.%lu两个参数的顺序对程序有什么影响?
2007-10-31 16:33
2007-10-31 16:36
2007-10-31 16:58
2007-10-31 17:06
2007-10-31 17:21

2007-10-31 18:02
2007-10-31 18:29
2007-10-31 18:45
要深入分析理解```比较困难```我是不能帮你的```
你现在是初学吗``这个问题`先留下吧````以后有机会再说```现在继续学下去```

2007-10-31 19:03
在tc下
1. %lu 应该是按 无符号长整型输出
2. 4292542461不是系统中 unsigned long 所能表达的最大值
3. 在调用printf 的时候 会将21 压入栈,那么在栈中某个地址会有以int型解释值为21的连续2个字节
printf函数运行中,在输出字符串的时候碰到 %lu 会将刚才压入栈的 21 (占2个字节), 还有之后高地址的两个字 节,
这样是一共连续4个字节的内容 以lu 无符号长整型格式输出,因为高地址的2个字节内容是随机的,所以输出的值会不是21.
21被编译器默认为 int型 你在常量21后加上L就不会这样了把.
2007-10-31 19:21