Jee*_*tel 2 c for-loop
看到我有一个像这样的代码
int main () { uint32_t i ; for(i=4;i>=0;i--) printf("i is %d \n",i); return 0; }
它进入无限循环.为什么我的价值低于0并且仍然循环进入执行?
Vla*_*mir 11
uint32_t表示无符号整数,因此其值始终> = 0 - 因此您的循环无限执行.
uint32_t
请注意,许多编译器将发出警告,指示i>=0比较始终为true.
i>=0
Mar*_*say 6
你会看到负数值,printf因为你将其打印为%d,但在条件中,uint32_t总是正数(你正在做溢出).
printf
%d
归档时间:
14 年,5 月 前
查看次数:
228 次
最近记录: