C++学习 之 变量和常量的使用(笔记)
一、变量
1.对变量含义的理解:
变量就像是经过工厂加工后有一定容量的容器。在变量定义时,系统充当了工厂的角色,按照类型为变量分配相应的空间。定义完成的变量可以存放相应类型的值,存放的值大于变量所能接受的范围时变量会发生溢出。顾名思义,变量里的值一般是可以修改的,体现在该变量存储区的值可以复写。
2.C++中变量的声明:
C++定义变量的语法:
variable_type(变量类型) variable_name(变量名称);
或
variable_type(变量类型) variable_name(变量名称) = initial_value(初始值);
如:
- int v1;
- char v2='a';
声明多个类型相同的变量:
variable_type(变量类型) variable_name(变量名称),variable_name(变量名称),...,variable_name(变量名称);
variable_type(变量类型) variable_name(变量名称) = initial_value(初始值),...,variable_name(变量名称) = initial_value(初始值);
variable_type(变量类型) variable_name(变量名称),...,variable_name(变量名称) = initial_value(初始值);
如:
- int a,b,c,d;
- int e=,f=,g=;
- int h,i=;
3.理解变量作用域:
每个变量都有作用域,变量的作用域决定了变量定义的生效范围,就如同法律条文一样,一般不同国家的法律条文仅作用于本国,变量仅生效于其作用域。函数内定义的变量的作用域为该函数内,全局变量的作用域为全局。不同函数内定义的变量被视为独立实体,当该函数执行完毕便释放变量所占用的内存空间,即便不同函数内定义的变量名称相同也不会相互影响。
全局变量定义示例:
- #include<iostream>
- using std::cout;
- using std::endl;
- int a=;
- void Print()
- {
- cout<<a<<endl;
- }
- int main()
- {
Print();- cout<<a<<endl;
- }
局部变量定义示例:
- #include<iostream>
- using std::cout;
- using std::endl;
- int a=;
- void Print()
- {
- int b=;
- cout<<b<<endl;
- cout<<a<<endl;
- }
- int main()
- {
- Print();
- cout<<a;
- //cout<<b;
- }
注意:main函数中的注释行"//cout<<b;"如果去掉注释符号会有类似于'b' was not declared in this scope的报错信息。因为变量 "b"只在Print函数中定义了,在main函数中没有定义。
4.C++中常见变量类型和取值范围:
4.1 bool变量
C++中专门为存储布尔值true和false而创建的变量类型,bool变量的取值为true或false。
布尔变量定义示例:
- bool running=false;
4.2 char变量
char变量用于存储单个字符。char的取值为256个字符值,在ASCII码中用7位二进制表示字符,可表示128个不同的字符值;在扩展ASCII码用一个字节中的高一位做扩展位,其余7位表示128个不同的字符
加上高位的一位共8位可表示256个字符值。
- char input_char='Y';//定义名为input_char的变量,并设置初始值为Y。
4.3 unsigned int 和 int变量
unsigned int 中有 unsigned short int 和 unsigned long int ,unsigned short int为二进制16位表示范围为0~65535,unsigned long int 为二进制32位表示范围为0~4294967295。在大多C++编译器中int被认
为拥有4个字节共32位,即直接使用unsigned int时 其取值范围大多时候为0~4294967295,部分编译器会把它。unsigned long long int 的范围为unsigned long int的两倍。int 中有short int 和 long int 以及
long long int,它们的二进制表示最高位为符号位,所以 short int 的取值范围 -32768~32767,long int 的取值范围为-2147483648~2147483648,long long int 的取值范围是 long 的基础上扩展两倍。
4.4 浮点类型 float 和 double
浮点数就是实数,可以是正,也可以是负,还可以包含小数值。如果要存储小数就可以声明浮点类型的变量,如:float Pi=3.1416;声明双精度浮点数(double)变量如:double Pi=3.14159265,注意想存
储两个整数相除得到的小数结果时,不能直接相除,而应在把整数换成类似"22.0"这样的小数。
5. typedef替换变量类型
C++允许我们将变量类型替换为我们认为方便或更具描述性的名称,为此可使用关键字 typedef。例如:typedef unsigned int Integral_type;给 unsigned int 一个别名 Integral_type。
二、常量
1. 常量的定义:
不被人为改变的量叫做常量,换句话说常量的值不能被修改。如果我们想定义了一个具有和变量一样带有名称的常量,我们可以使用const来定义,也可以使用enum声明枚举常量。在C++11版本中新增了
常量表达式,声明时使用constexpr。不推荐使用#define定义变量,因为其定义的是宏常量,只是字符替换,编译器不关心常量的类型,没法进行语法的检查。const比#define更安全并且更加简洁高效; #define兼容性更好。
2.枚举常量的定义:
使用enum为一种变量设置特定一组取值。
例如枚举常量包含彩虹的颜色:
- enum RainbowColors
- {
- Violot = ,
- Indigo,
- Blue,
- Green,
- Yellow,
- Orange,
- Red
- };
声明的枚举常量,编译器会把它转化为整数,其默认起始值为0,我们也可以给定初始值如上例中显式给出初始值为0,我们还可以给每个枚举常量赋指定值(使用默认值时每个值都比前一个大1,当然除
了第一个)。
注意:变量命名要符合规范,要站在别人的角度考虑,要使得变量名或常量名具有描述性。
C++学习 之 变量和常量的使用(笔记)的更多相关文章
- Swift开发学习-02 变量和常量
本教程是笔者在自学IOS/Swift知识的总结,适用于通过对Objictive C编程的运用,并需要了解基于iOS程序的iPhone和iPad的程序员.做一个有bigger的’攻城狮‘,有尊严的工作, ...
- C语言基础学习基本数据类型-变量和常量
变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...
- java===java基础学习(1)---数据类型,运算,变量,常量
今天起开始了java的学习之路,主要学习了数据类型和运算,变量,常量.基本和python有很多相通的地方,所以看起来很容易上手.下面是学习笔记! package testbotoo; public c ...
- VBA 学习笔记 - 变量与常量
学习资料:https://www.yiibai.com/vba/vba_variables.html 变量和常量命名规则 必须以字母开头 不能包含空格.句点(.).感叹号(!)或字符@,&,$ ...
- 普通人学习rust——从零到放弃 变量、不可变量、常量
普通人学习rust--从零到放弃 变量.不可变量.常量 环境 本文章内容基于如下环境,如若出入请参考当前环境. rustc 1.42.0 (b8cedc004 2020-03-09) cargo 1. ...
- Swift学习笔记--变量与常量
1.Swift是一门强类型语言,不能为变量赋予其自身数据类型之外的值: 2.声明变量使用var关键字,声明常量使用let关键字: 3.声明变量或常量时没有对其指定类型且赋予了初值,则编译器会自动推断常 ...
- Swift学习(四)常量&变量&基础数据类型
常量和变量 常量: 使用let关键词来声明一个常量 所指向的是一个特定类型的值,如数字10或者字符”hello”,常量的值是不能够被二次修改的 编程时使用常量能够让代码看起来更加安全和简洁! let ...
- 【Java学习笔记之三】java中的变量和常量
变量和常量 在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量. 在实际的程序中,可以根据 ...
- VS基本学习之(变量与常量)
一.变量与常量 1) 变量 由(定义+赋值+取值组成) 变量的命名规则: ① 变量名组成:字母 数字 下划线 @ 汉字 ② 首字母只能用:字母 下划线 @ 汉字(不能是数字 ...
随机推荐
- (编程语言+python+变量名+垃圾回收机制)*知识点
编程语言 从低级到高级的发展的过程 1.机器语言 计算机是基于电工作的.(基于高.低电平 1010010101011) 如果用机器语言表现一个字符的意思需要多段代码的行.但是计算机读取的快. 所以机器 ...
- pycharm2019连接mysql错误:08801 ------Connection to django1@localhost failed. [08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
- ftp列出具体目录的所有目录,和目录按照文件类型列出
package com.haiyisoft.cAssistantWeb.util; import java.io.IOException; import java.io.PrintWriter; im ...
- python sqlalchemy 进行 mysql 数据库操作
1. 进行mysql数据库的创建,如果已经存在,就相当于进行数据库的连接操作 from sqlalchemy import create_engine from sqlalchemy.ext.decl ...
- LC 431. Encode N-ary Tree to Binary Tree 【lock,hard】
Design an algorithm to encode an N-ary tree into a binary tree and decode the binary tree to get the ...
- Oracle 12C 物理Standby 主备切换switchover
Oracle 12C 物理Standby 主备切换switchover Oracle 12C 物理Standby 主备切换switchover Table of Contents 1. 简述 2. 切 ...
- GB 和 GiB 的区别
GB 和 GiB 的区别 Gibibyte (GiB) is one of the standard units used in the field of data processing and da ...
- 內部作业 OH01 0001710000 无价格可确定
在CO15报工时,提示:“內部作業 OH01 0001710000 無價格可確定” 出现以上错误信息,表示没有在KP26维护价格, 只需要进入KP26维护成本中心和作业类型的价格即可, 具体操作如下图 ...
- Python内置函数reversed()用法分析
Python内置函数reversed()用法分析 这篇文章主要介绍了Python内置函数reversed()用法,结合实例形式分析了reversed()函数的功能及针对序列元素相关操作技巧与使用注意事 ...
- k8s常用操作命令
K8s常用命令操作 一.kubectl命令补全 .master安装命令补全,并临时生效 yum install -y bash-completion source /usr/share/bash-co ...