【问题标题】:What is the return value of int plus uint?int加uint的返回值是多少?
【发布时间】:2015-01-25 05:05:02
【问题描述】:

我有两个变量:

int a;
uint b;

我还有一个数组:

float c[100];

如果我想传递a+b 作为数组c 的索引,这样:

c[a+b] = 10.0;

为了安全起见,我们应该确保a+b 返回uint。它是否返回unit

我应该强制它的返回值为uint吗?

【问题讨论】:

标签: c arrays int uint


【解决方案1】:

是的,当您添加 intunsigned int 时,int 的值将提升为 unsigned int,所以您会没事的。但是,请注意 a 不是负数,否则您会大吃一惊!

【讨论】:

  • 感谢您的回复。什么是负数?如何提升为 unsigned int?
  • @UKYECE 从技术上讲,这应该是一个新问题——“如果我将负值转换为 unsigned int 会发生什么?”
  • @immibis 从技术上讲应该是“当否定的int 转换为unsigned int 时会发生什么?”。演员表需要演员表运算符。
  • 这并不是特别讨厌:负整数得到 UINT_MAX+1 添加到它,使其成为正 unsigned int-1 + 5u4u
  • 是“假设 2s 补码”,还是标准保证?
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 2017-01-06
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多