【发布时间】:2015-09-18 09:20:08
【问题描述】:
#include<stdio.h>
main()
{
unsigned int num;
printf("enter the number:\n");
scanf("%u",&num);//4294967299 if i'm scanning more than 4G its not scanning
printf("after scanning num=%u\n",num);// 4294967295 why its giving same 4G
/* unsigned char ch;
printf("enter the character:\n");
scanf("%d",&ch);// if i/p=257 so its follow circulation
printf("after scanning ch=%d\n",ch);// 1 its okk why not in int ..
*/
}
为什么通过scanf()扫描输入时循环不跟随,为什么char的情况下循环跟随?
【问题讨论】:
-
@JoachimPileborg 但是他们是
unsigned type所以为什么它会是未指定的行为。 -
在编译时,如果我的取值超过 range ,请正确评估它的值,但为什么不在运行时?
-
输入编译器将解析的整数文字是一回事,
scanf函数完全是另一回事。这两者和它们的解析无关。