将正数 'int' 转换为 'size_t'

Casting positive 'int' to 'size_t'

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

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

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