c ++中文字类型和变量类型之间的区别

时间:2014-05-26 15:25:26

标签: c++ c

我正在通过cplusplus.com学习C ++,并遇到类似75u的内容,它似乎描述了一个无符号常量。

让我感到困惑的是:当已经有一个规定来声明75将被指定为无符号的变量时,宣布一个常数为无符号是什么意思?

简单说:

为什么在将数字u分配给(例如)unsigned int时,是否会特意添加unsigned int i = 75;

之间有什么区别
unsigned int i = 75u;

{{1}}

1 个答案:

答案 0 :(得分:8)

那是因为=左侧的变量类型(在赋值中) nothing 与表达式的计算方式有关(右手边。)

这似乎让许多新程序员感到惊讶,但它仍然是正确的。

这样的事情:

const float two_thirds = 2 / 3;  /* Bad code! */

将0.6666667分配给two_thirds;由于23都是int文字,因此使用整数数学计算表达式。

你需要:

const float two_thirds = 2.f / 3;

强制表达式为float。类似的推理适用于unsigned的使用,因为它的范围大于有符号变量。