第 3 章 · 变量、常量与数据类型

发布时间:2026/10/4 3:33:02
第 3 章 · 变量、常量与数据类型 程序要处理数据就得先把数据存起来。变量就是内存里的带名字的盒子。本章讲什么是变量、有哪些数据类型、怎么给变量起名。3.1 什么是变量变量variable是内存中一块有名字的存储空间用来存放数据。想象内存是一个巨大的储物柜有无数个小格子每个格子有编号地址。直接记编号太痛苦于是我们给格子起个名字这就是变量。intage20;这行代码做了三件事int声明类型——这个盒子装整数integer。age给盒子起名age。 20把数字 20 放进盒子。之后要用这个数直接写age就行std::coutage;// 打印 20关键理解age这个名字代表盒子里的值。读age就是读盒子里的数改age就是换盒子里的数。3.2 变量必须先声明再使用C 是强类型语言每个变量必须先声明类型才能使用。inta;// 声明告诉编译器我要一个装整数的盒子叫 aa10;// 赋值把 10 放进 aintb20;// 声明 赋值一步完成推荐intcab;// 可以用别的变量初始化如果不声明就直接用会报错x5;// 错误x 没声明编译器不知道 x 是什么3.3 基本数据类型数据有不同的种类C 提供了多种基本数据类型整数类型类型含义取值范围常见大小int整数约 ±21 亿4 字节short短整数约 ±3.2 万2 字节long长整数更大4 或 8 字节long long超长整数约 ±9×10¹⁸8 字节unsigned int无符号整数0 ~ 约 42 亿4 字节最常用的是int。unsigned表示非负取值范围翻倍但没有了负数。浮点类型小数类型含义精度float单精度浮点数约 7 位有效数字double双精度浮点数约 15 位有效数字最常用Eigen 里的d就来自 doubleMatrixXd的d表示元素是 double 类型。字符和布尔类型含义例子char单个字符字母、数字、符号A、7、bool真假值true/falsecharletterA;// 注意字符用单引号boolisOKtrue;// 布尔只有两个值doublepi3.14159;intcount0;一个汉字塞不进char。char只有 1 个字节而一个汉字在 UTF-8 里占 3 个字节。实测写char c 中;g 警告multi-character character constant且值被截成-83根本不是你想存的东西MSVC 在不带/utf-8时更直接编译报错。要存中文请用std::string第 12 章——本书的示例里中文都写在字符串里就是这个原因。3.4 一个完整的示例#includeiostreamintmain(){intage20;// 整数doubleheight1.75;// 小数chargradeA;// 字符boolisStudenttrue;// 布尔std::cout年龄agestd::endl;std::cout身高heightstd::endl;std::cout等级gradestd::endl;std::cout是否学生isStudentstd::endl;// 打印 true 显示 1return0;}运行结果年龄20 身高1.75 等级A 是否学生1注意bool打印时true显示为1false显示为0。3.5 常量不能改的变量有时候我们不想让某个值被修改比如圆周率 π。这时用const声明常量constdoublePI3.14159;PI3.14;// 错误常量不能修改const是常量的意思。一旦声明值就固定了。建议凡是不打算改的量都声明成const这样编译器能帮你防止意外修改。3.6 变量命名规则给变量起名要遵守规则也讲究风格必须遵守否则报错只能由字母、数字、下划线_组成不能以数字开头2x不合法x2合法不能用 C 关键字int、return、if等推荐风格用有意义的名字age、totalScore而不是a、x1多个单词用驼峰命名studentAge、maxValue常量全大写加下划线PI、MAX_SIZEintstudentAge18;// 好inta18;// 差看不出意思int2ndPlace1;// 错误不能数字开头3.7 类型转换不同类型之间有时需要转换隐式转换自动inta5;doubleba;// 自动把 int 转成 doubleb 5.0把小类型放进大类型会自动转换安全。显式转换手动doublec5.7;intd(int)c;// 强制转成 int会截断小数d 5注意double 转 int 会丢掉小数部分不是四舍五入是直接截断。C 更推荐用static_cast做显式转换intdstatic_castint(c);// 更安全、更清晰的写法3.8 小结变量是内存里有名字的存储空间必须先声明类型。基本类型int整数、double小数、char字符、bool真假。const声明常量不可修改。命名要有意义遵循规则。类型转换分隐式自动和显式手动可能丢精度。下一章学习用运算符对数据做计算。练习题声明一个int变量存你的年龄一个double变量存你的身高打印出来。声明const double PI 3.14159;然后尝试修改它看报什么错。写代码验证double c 5.7; int d (int)c;之后d等于多少判断下面哪些变量名合法myName、2cool、_count、total-score、return。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询