首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++中文字类型和变量类型的区别

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

Stack Overflow用户
提问于 2014-05-26 23:25:26
回答 1查看 443关注 0票数 0

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

让我困惑的是:既然已经有规定声明75将被赋值为无符号的变量,那么声明一个常量为无符号有什么意义?

更简单的说法是:

为什么在将一个数字赋值给(例如)一个无符号整数时,您要特别地将u添加到该数字中?

两者的区别是什么

代码语言:javascript
复制
unsigned int i = 75;

和

代码语言:javascript
复制
unsigned int i = 75u;
EN

回答 1

Stack Overflow用户

发布于 2014-05-26 23:28:21

这是因为=左侧的变量类型(在赋值中)与表达式的求值方式(右侧)无关。

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

如下所示:

代码语言:javascript
复制
const float two_thirds = 2 / 3;  /* Bad code! */

不将0.6666667赋值给two_thirds;由于2和3都是int文字,因此使用整数数学计算表达式。

您需要:

代码语言:javascript
复制
const float two_thirds = 2.f / 3;

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23873344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档