c++ - C/C++ 使用 int 或 unsigned int

标签 c++ c types int unsigned

在很多代码示例、源代码、库等中。据我所知,我看到了 int 的使用,unsigned int 会更有意义。

我经常看到的一个地方是 for 循环。见下例:

for(int i = 0; i < length; i++)
{
    // Do Stuff
}

为什么你会使用 int 而不是 unsigned int?只是懒惰——人们不会被输入 unsigned 所困扰吗?

最佳答案

使用 unsigned 会引入难以发现的编程错误,通常最好使用带符号的 int 来避免它们。一个例子是,当您决定向后而不是向前迭代并编写以下代码时:

for (unsigned i = 5; i >= 0; i--) {
    printf("%d\n", i);
}

另一个是如果你在循环内做一些数学运算:

for (unsigned i = 0; i < 10; i++) {
    for (unsigned j = 0; j < 10; j++) {
        if (i - j >= 4) printf("%d %d\n", i, j);
    }
}

使用 unsigned 会引入此类错误的可能性,而且实际上并没有任何好处。

关于c++ - C/C++ 使用 int 或 unsigned int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22587451/

相关文章:

scala - 在 Scala 中交换不同类型的元组

function - 不明白这个 haskell 代码中的内容

javascript - 如何在 typescript 中使用 Prop 类型作为类型定义?

c++ - 如何使用 SHGetFileInfo() 方法获取文件夹的打开图标?

c++ - 浮点比较精度

c - 字符工具函数

c - 解释在主动套接字(而不是被动套接字)上调用时接受函数的行为

c++ - 在 NTFS、FAT、EXT4 上测试写入/读取速度

c++ - 避免打开模板参数

c++ - 在构造函数 C++ 中初始化引用