C++ 语言变量的定义、声明和初始化

1. 定义变量

每种变量都存储一种特定的数据,在定义了变量后,它可以存储的数据类型就是固定的。存储整数的变量,就不能存储小数。

1.1 命名变量

变量的名称可以是任意字母和数字的序列,其中下划线 _ 算作字母,其他字符则不允许使用。名称必须以字母或下划线开头,通常表明所存储的信息的种类。名称也称为标识符。

在 Visual C++ 中,变量名最长可以有 2048 个字符。使用长名称会使程序难以阅读且很难输入。

最好避免使用以下划线开头、且包含大写字母的名称,它们可能与相同形式的标准库名称发生冲突。由于同样的原因,还应当避免使用以双下划线开头的名称。

8_Ball7Up6_pack 不是合法的名称,Hash!Mary-Ann 也不是合法的名称,Maiy_Ann 是合法的。Mary Ann 不是合法的名称,因为变量名不允许有空白。名称 republicanRepublican 是不同的,因为名称是区分大小写的。一个常见的约定是类名以大写字母开头,变量名以小写字母开头。

1.2 关键字

关键字是 C++ 中的保留字,它们在该语言内有特殊的意义。关键字不能用作代码中的名称。关键字和名称一样,也是区分大小写的。

编辑器用特定的颜色突出显示关键字,默认为蓝色。如果没有突出显示关键字,那么说明输入了不正确的关键字。修改颜色:Tools -> Options -> Environment -> Fonts and Colors 选项。

2. 声明变量

变量声明是一个语句,指定变量的名称和类型。

int value;

这个语句声明了一个名称为 value 的变量,可以存储整数。在变量 value 中可以存储的数据类型由关键字 int 指定,所以只能使用 value 存储 int 类型的数据。

一个声明可以指定几个变量的名称:

int cost, discount_percentr, net_price;

比较好的方法一般是用一个语句声明一个变量,每行只写一个语句。

为了存储数据,需要将一段计算机内存与变量名关联起来,这个过程称为变量定义。除了一些特殊情况之外,变量声明也是一个定义,它引入了变量名,并将它与适当容量的一段内存联系起来。

int value;

既是一个声明,又是一个定义。已声明的变量名 value 用来访问与之关联的一段计算机内存, 这段内存可以存储一个 int 类型的值。必须在第一次使用变量之前声明它,最好在接近于首次使用变量的位置声明它们。

3. 初始化变量

在声明变量时,可以给它赋予初始值。将初始值赋给变量的声明称为初始化。初始化有三种语法形式,推荐方式是使用初始化列表。

3.1 变量的初始化方法 1 - 变量赋值法

下列语句给每个变量赋予一个初始值:

int value = 0;
int count = 10;
int number = 5;

value 的值是 0,count 的值是 10,number 的值是 5。

3.2 变量的初始化方法 2 - 函数表示法

初始化变量的第二种方式是使用函数表示法。此时不使用等号和数值,而是把数值写入变量名后面的圆括号内。

声明可以表示为:

int value (0);
int count (10);
int number (5);

3.3 变量的初始化方法 3 - 初始化列表

初始化变量的推荐方式是初始化列表

前面的声明可以重写为:

int value {};
int count {10};
int number {5};

初始值放在变量名后面的花括号中。如果花括号为空,例如 value 的定义,假定 value 的值是 0。这种记号由 C++11 标准引入,前面两种方法仍是有效的,目前第三种是推荐方式。因为这种记号可以用在几乎每种情形下,使初始化统一起来。

如果没有提供初始值,变量就通常将包含前一个程序在该变量占用的内存中留下的无用信息。尽可能在定义变量时进行初始化。如果变量一开始就有已知值,在出错时就比较容易解决所发生的问题。有一件事是确定的,一定会出现差错。

References

Ivor Horton’s Beginning Visual C++ 2013
(美) Ivor Horton 著, 李周芳, 江凌 译. Visual C++ 2013 入门经典[M]. 第 7 版. 清华大学出版社, 2015.
http://www.wrox.com/WileyCDA/WroxTitle/productCd-1118845714.html

C++ 语言变量的定义、声明和初始化相关推荐

  1. 变量的定义 声明和初始化和static

    1.声明: 定义性声明: int a; 引用性声明: extern int a; 2.定义 int a; 3.初始化 a = 10; 一般的情况下,我们把建立空间的声明称之为定义. 而把不需要建立存储 ...

  2. C语言变量的定义包括变量存储类型和变量的什么?

    C语言变量的定义包括变量存储类型和变量的名称.C语言定义变量的格式:"数据类型 变量名;","数据类型"表示想要存储什么类型的数据,"变量名" ...

  3. 数据类型---C语言变量的定义与初始化

    文章目录 前言 一.变量的定义 二.变量的初始化 1.变量初始化的两种形式 2.局部变量 3.局部静态变量和全局变量 前言 假期巩固一下C语言的基础知识吧 一.变量的定义 1.    C语言中对于变量 ...

  4. C语言——变量的定义与声明

    1.变量的定义(只有一次) (1) 什么是变量: 变量的本质就是要在内存的某个位置开辟空间,用来保存数据: (2)变量定义举例说明: 变量的定义相当于对一个喜欢的人表白只能有一次. (3)为什么变量都 ...

  5. c语言变量声明举例,C语言变量的定义和声明

    今天犯了一个低级的错误,在头文件中定义了一个变量,而该头文件被多个源文件调用,导致该变量重复定义.然后我就把改变量改成static类型的了,这下编译倒是不出错了,就是结果跟我想象的不一样,在一个文件中 ...

  6. C语言中指针定义的时候初始化的必要性

    定义一个指针时,不进行初始化,系统会为这个变量自动分配一个地址,这个地址的值就是指针的值可能为0X1234,不初始化这个指针的值的话,操作这个指针就想当于操作这个0X1234这个地方的内容,就会出现问 ...

  7. 【结构体】结构变量的定义与初始化

    1.结构变量的定义 声明了结构类型后,还需要定义结构变量,以便在程序中引用它. 结构变量和其他变量一样,必须先定义后使用 (1)先定义结构类型,再定义结构变量 struct books { int b ...

  8. 函数中的声明和变量的定义

    函数中的声明和变量的定义 声明与定义比较 前向引用 函数属性 内部/内嵌函数 函数应用:打印图形和数学计算 变量作用域 全局变量与局部变量 局部变量 全局变量 globa语句 可变类型的全局变量 声明 ...

  9. 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量

    非零基础自学Golang 文章目录 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量 3.1.1 声明变量 3.1.2 初始化变量 3.1.3 变量值交换 3.1.4 匿名变量 ...

最新文章

  1. Nodejs随学随记(杂)
  2. 纳米技术系列:物联网的下一个大事件竟来自极小之处
  3. viewDidUnload 和 dealloc 的区别
  4. [Mysql]——通过例子理解事务的4种隔离级别
  5. 控制SAP Spartacus shipping address页面spinner显示的逻辑
  6. java restful接口测试_详解SpringBoot restful api的单元测试
  7. 基于事件驱动架构构建微服务第2部分:领域对象和业务规则
  8. pythonasyncio并发编程实战_python异步编程之asyncio(百万并发)
  9. Qt加载RGB内存数据,并显示彩色图
  10. 【转】Python自动化测试 (一) Eclipse+Pydev 搭建开发环境
  11. html双击单元格修改,JS实现鼠标双击选中表格单元格代码
  12. Ubuntu的版本号命名规则
  13. mtk camera faq
  14. OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置
  15. Android Studio连接MuMu模拟器
  16. c语言手写平衡二叉树(一)
  17. 【代码段】动态生成页面heading
  18. U3D DotH教程2
  19. div:给div加滚动条 div的滚动条设置
  20. 晨风机器人卡片/文字双切配置

热门文章

  1. ios label文字行间距_UILabel UITextField调整行间距【原创】
  2. 计算机最基本的硬件配置,详细的Windows 10计算机硬件配置要求和最低配置
  3. pip uninstall numpy:报错
  4. 浅谈用KUSTO查询语言(KQL)在Azure Synapse Analytics(Azure SQL DW)审计某DB账号的操作记录
  5. 如何用java给PDF添加一个图片水印?
  6. 顶风作案:谈一谈债务危机
  7. 关于p值的一些经验法则
  8. 运维面试题(每日一题)
  9. 修改global.func.php,DZ论坛核心代码分析-核心文件global.func.php篇
  10. 水平型微指令与垂直型微指令