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

difference between literal types and variable types in c++

本文关键字:类型 区别 变量 文字 c++ 中文      更新时间:2023-10-16

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

让我感到困惑的是:当已经有规定声明75将被赋值为unsigned的变量时,声明一个常量为unsigned的意义是什么?

简单说:

为什么在将一个数字赋值给(例如)一个unsigned int时要特别添加一个u ?

unsigned int i = 75;

unsigned int i = 75u;

这是因为=左侧的变量类型(在赋值中)与如何计算表达式(右侧)没有关系。

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

像这样:

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

not assign 0.6666667给two_thirds;由于23都是int字面值,因此使用整数数学对表达式求值。

你需要

:

const float two_thirds = 2.f / 3;

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