unsigned int arithmetic - 初学者C.

时间:2011-11-18 15:20:27

标签: c int unsigned

冒着大肆宣传愚蠢问题的风险:

说我有以下代码段:

unsigned int limit = 4294967296;
int math = 50000;

while(limit > 50000)
{
    limit = limit - math;
    printf("new limit is - \t%u\n", limit);
}

在unsigned int类型和int类型之间进行算术会对内存使用产生影响吗?

我知道unsigned int的内存大一个数量级(int为2 ^ 31,而unsigned int为2 ^ 32),但是,因为我使用unsigned int作为占位符,我想我我否定了溢出的危险。

我会自己运行,但我现在没有可访问的Linux机箱。

对此的任何意见都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这将永远循环,因为你最终会有环绕(即,limit永远不会小于0)...这是你的问题吗?