【问题标题】:Casting positive 'int' to 'size_t'将正“int”转换为“size_t”
【发布时间】:2015-04-06 16:25:08
【问题描述】:

size_t 和 int 之间的区别是有据可查的,我重述一下:前者是一些依赖于实现的无符号整数类型的别名,而后者是有符号的;前者更适合内存声明,而后者更适合算术运算。

我的问题是,如果我做一些算术计算来给出一个 int(它永远不会太大并且总是正数)并将它分配给一个 size_t 变量(用于访问数组位置),是否有任何情况可能会出现问题?

【问题讨论】:

  • 如果您知道数量不会为负数,请在计算中使用unsigned int。例如,一本书的页数永远不会是负数。

标签: c++ casting int size-t


【解决方案1】:

将有符号类型分配给无符号类型总是明确定义的(即使对于负值)。如果有符号变量不大于无符号类型,并且只有非负数,则在这种转换中值不会改变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多