5.变量
5.1 知识点
折叠代码
功能说明
- 作用: 可将中间包裹的代码折叠起来,避免代码过于凌乱。
- 本质: 编辑器提供的预处理指令,仅在编辑时有效,发布或执行时会被自动删除。
语法结构
折叠代码的主要作用是让编程逻辑更加清晰。其语法结构如下:
#pragma region 分组名
#pragma endregion
示例
#pragma region 我的分组
//代码
#pragma endregion
如何声明变量
基础规则
变量是用于存储各种不同类型数值的容器。以下是变量声明的固定写法:
变量类型 变量名 = 初始值;
int i = 1;
关键点
- 变量类型:表示变量存储的数据类型。
- 变量名:由开发者自定义,但需遵循命名规则。
- 初始值:类型必须与变量类型一致。
- 固定符号:
=
和;
为不可省略的语法。
注意: 变量必须先声明后使用,不能无中生有。
有符号的整形变量
有符号短整型
short ([signed] short [int])
存储范围:-32768 ~ 32767
示例:
short s = 1;
signed short s2 = 2;
signed short int s3 = 3;
short int s4 = 4;
有符号整型
int ([signed] int)
存储范围:-21亿多 ~ 21亿多
示例:
int i = -10;
signed int i2 = 2000000000;
有符号长整型
long ([signed] long [int])
存储范围:-21亿多 ~ 21亿多 或 -9223亿亿多 ~ 9223亿亿多
示例:
long l = 10;
signed long l2 = 12l;
signed long int l3 = 13L;
long int l4 = 2000000000L;
有符号长长整型
long long([signed] long long [int])
存储范围:-9223亿亿多 ~ 9223亿亿多
示例:
long long ll = 200000000000;
signed long long ll2 = 2ll;
long long int ll3 = 3LL;
signed long long int ll4 = 4LL;
无符号的整形变量
无符号短整型
unsigned short (unsigned short [int])
存储范围:0 ~ 65535
示例:
unsigned short us = 50;
unsigned short int us2 = 60;
无符号整型
unsigned (unsigned [int])
存储范围:0 ~ 42亿多
示例:
unsigned u = 4200000000;
unsigned int u2 = 2U;
unsigned int u3 = 3u;
无符号长整型
unsigned long (unsigned long [int])
存储范围:0 ~ 42亿多 或 0 ~ 18446亿亿多
示例:
unsigned long ul = 4200000000;
unsigned long int ul2 = 20ul;
unsigned long int ul3 = 30UL;
无符号长长整型
unsigned long long (unsigned long long [int])
存储范围:0 ~ 18446亿亿多
示例:
unsigned long long ull = 10000000000000;
unsigned long long ull2 = 2ull;
unsigned long long ull3 = 3ULL;
浮点数(小数)
单精度浮点数
float
存储范围:-3.4 * 10^-38 ~ 3.4 * 10^38
存储 6/7 位有效数字
示例:
float f = 1.4F;
float f2 = 1234567890.0f;
float f3 = 1.23456f;
float f4 = 1.234f;
双精度浮点数
double
存储范围:-1.7 * 10^-308 ~ 1.7 * 10^308
存储 15/16 位有效数字
示例:
double d = 1.5;
长双精度浮点数
long double
存储范围:-1.1 * 10^-4932 ~ 1.1 * 10^4932
存储 18/21、33/36 位有效数字
示例:
long double ld = 1.6l;
long double ld2 = 1.7L;
特殊类型
布尔类型
bool
表示真假类型:`true` (1) 或 `false` (0)
示例:
bool b = true;
bool b2 = false;
字符类型
char
存储单个字符(ASCII 编码)
示例:
char a = 'a';
char tao = '韬'; // 无法正常打印,超出存储范围
字符串类型
string
存储多个字符,无上限,支持多种编码规则
示例:
string str = "韬老狮爱学习,好好学习,天天向上";
为什么有那么多不同类型的变量
不同变量类型存储范围和占用的内存空间不同,应根据实际需求选择合适的数据类型。
示例:
string myName = "韬老狮";
short age = 18;
float height = 177.5f;
float weight = 75.5f;
bool sex = false; // true为女,false为男
口诀:数字用int
,小数用float
或double
,字符串用string
,真假用bool
。
多个相同类型的变量同时声明
示例:
int a1 = 1, a2 = 2, a3 = 3;
string str1 = "123", str2 = "韬老狮";
变量初始化相关
变量声明时可以不设置初始值,但不建议这样写。
示例:
int bb1, bb2 = 99, bb3;
bb1 = 10;
bb3 = 12;
输出:
10
99
12
5.2 知识点代码
Lesson05_变量.cpp
#include <iostream>
using namespace std;
int main()
{
std::cout << "变量\n";
#pragma region 知识点一 折叠代码
#pragma region 我的分组
#pragma endregion
//主要作用 是让我们编程时 逻辑更加清晰
//它是由
//#pragma region 分组名
//#pragma endregion
//配对出现的(region是区域的意思 pragma是编译指令的意思)
//它的具体作用 是可以将中间包裹的代码折叠起来 避免代码太凌乱
//本质是 编辑器提供给我们的 预处理指令
//它只会在编辑时有用 发布了代码 或执行代码 它会被自动删除
#pragma endregion
#pragma region 知识点二 如何声明变量
#pragma region 基础规则
//变量 可以变化的容器
//变量 就是用来存储各种不同类型数值的 一个容器
//不同的 变量类型 可以存储不同类型的值
//变量声明固定写法
// 变量类型 变量名 = 初始值;
// int i = 1;
// 1.变量类型 —— 基础变量类型,有14种变化
// 2.变量名 —— 我们自定义 要按照一定规则
// 3.初始值 —— 一定要和变量类型是统一
// 4.= 和 ; —— 是固定的 不变的
//注意:变量的使用和修改 不能无中生有 必须要先声明再使用
//变量类型记忆关键点
// 一定要死记硬背 各种变量类型的关键字
// 一定要记忆 各种不同变量类型 所能存储的范围
// 一定要记住 各种不同变量类型 所能存储的类型
//注意:存在更多的变量类型
//我们将要学习的变量类型是较为常用的内容
//C++还有很多其他的变量类型,即使现在不知道,也不影响我们的学习和编程
//我们以后需要时再进行补充
#pragma endregion
#pragma region 1.有符号的整形变量
//能存储 一定范围 正负数包括0的变量类型
//这里的符号你可以理解成 可以表示有负号的整数
// 1-1.有符号短整型:
// short ([signed] short [int])
// 存储范围:-32768 ~ 32767
cout << "有符号短整形:\n";
short s = 1;
cout << s << endl;//1
signed short s2 = 2;
cout << s2 << endl;//2
signed short int s3 = 3;
cout << s3 << endl;//3
short int s4 = 4;
cout << s4 << endl;//4
// 1-2.有符号整型:
// int ([signed] int)
// 存储范围:-21亿多 ~ 21亿多
cout << "有符号整形:\n";
int i = -10;
cout << i << endl;//-10
signed int i2 = 2000000000;
cout << i2 << endl;//2000000000
// 1-3.有符号长整形:
// long ([signed] long [int])
// 存储范围:-21亿多 ~ 21亿多 或 -9223亿亿多 ~ 9223亿亿多
// 可以加上后缀,明确变量类型:l/L
// 注意:long的范围可能不同 是因为在不同操作系统(Windows、UNIX/Linux等等)上
// 它所占的存储空间不同,在windows上它往往和int的存储空间一样
cout << "有符号长整形:\n";
long l = 10;
cout << l << endl;//10
signed long l2 = 12l;
cout << l2 << endl;//12
signed long int l3 = 13L;
cout << l3 << endl;//13
long int l4 = 2000000000L;
cout << l4 << endl;//2000000000
// 1-4.有符号长长整形:
// long long([signed] long long [int])
// 存储范围:-9223亿亿多 ~ 9223亿亿多
// 可以加上后缀,明确变量类型:ll/LL
cout << "有符号长长整形:\n";
long long ll = 200000000000;
cout << ll << endl;//200000000000
signed long long ll2 = 2ll;
cout << ll2 << endl; //2
long long int ll3 = 3LL;
cout << ll3 << endl; //3
signed long long int ll4 = 4LL;
cout << ll4 << endl; //4
#pragma endregion
#pragma region 2.无符号的整形变量
//能存储 一定范围 0和正数的变量类型
//2-1.无符号短整型
// unsigned short (unsigned short [int])
// 存储范围:0 ~ 65535
cout << "无符号短整形:\n";
unsigned short us = 50;
cout << us << endl;//50
unsigned short int us2 = 60;
cout << us2 << endl;//60
//2-2.无符号整型
// unsigned ( unsigned [int])
// 存储范围:0 ~ 42亿多
// 可以加上后缀,明确变量类型:u/U
cout << "无符号整形:\n";
unsigned u = 4200000000;
cout << u << endl;//4200000000
unsigned int u2 = 2U;
cout << u2 << endl;//2
unsigned int u3 = 3u;
cout << u3 << endl;//3
//2-3.无符号长整型
// unsigned long (unsigned long [int])
// 存储范围:0 ~ 42亿多 或 0 ~ 18446亿亿多
// 可以加上后缀,明确变量类型:UL/ul
// 注意:unsigned long的范围可能不同 是因为在不同操作系统(Windows、UNIX/Linux等等)上
// 它所占的存储空间不同,在windows上它往往和int的存储空间一样
cout << "无符号长整形:\n";
unsigned long ul = 4200000000;
cout << ul << endl;//4200000000
unsigned long int ul2 = 20ul;
cout << ul2 << endl;//20
unsigned long int ul3 = 30UL;
cout << ul3 << endl;//30
//2-4.无符号长长整型
// unsigned long long (unsigned long long [int])
// 存储范围:0 ~ 18446亿亿多
// 可以加上后缀,明确变量类型:ull/ULL
cout << "无符号长长整形:\n";
unsigned long long ull = 10000000000000;
cout << ull << endl;//10000000000000
unsigned long long ull2 = 2ull;
cout << ull2 << endl;//2
unsigned long long ull3 = 3ULL;
cout << ull3 << endl;//3
#pragma endregion
#pragma region 3.浮点数(小数)
//浮点数学习关键点
//浮点数存储的范围看似很大
//但是会损失一些准确性
//满足限制条件时,并不会带来准确性问题
//当超过一些限制时,它并不能准确的表示一个数(会存在误差)
//3-1.单精度浮点数
// float
// 存储范围:-3.4*10^-38 ~ 3.4*10^38
// -0.00000000000000000000000000000000000034 ~ 340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
// 关键点:
// 1.声明时在小数数值后面需要加一个f/F
// 是因为c++中 声明的小数 默认是double的类型 加f 是告诉系统 它是float类型
// 2.存储6/7位有效数字 (对于过大和过小的数,它并不能保证存储数值的准确性)
// 有效数字 是从左到右从非0处开始算有效数字的
// 1.123 有4位有效数字
// 1004 有4位有效数字
// 0.004 有1位有效数字
// 0.104 有3位有效数字
// 当超过有效数字后,会对后面的数进行四舍五入,但是再后面的数字就无法保证精度了
// 用 cout 打印浮点数 会默认转换为6位有效数字的精度输出内容
cout << "单精度浮点数:\n";
float f = 1.4F;
cout << f << endl;//1.4
float f2 = 1234567890.0f;
cout << f2 << endl;//1.23457e+09
float f3 = 1.23456f;
cout << f3 << endl;//1.23456
float f4 = 1.234f;
cout << f4 << endl;//1.234
//3-2:双精度浮点数
// double
// 存储范围:-1.7*10^-308 ~ 1.7*10^308
// 关键点:
// 1.C++中默认声明的小数是double的类型
// 2.存储15/16位有效数字
cout << "双精度浮点数:\n";
double d = 1.5;
cout << d << endl;//1.5
//3-3.长双精度浮点数
// long double
// 存储范围:-1.1*10^-4932 ~ 1.1*10^4932 等 不同操作系统上空间可以不同
// 存储18/21、33/36位有效数字
// 关键点:
// 需要加上l/L后缀
cout << "长双精度浮点数:\n";
long double ld = 1.6l;
cout << ld << endl;//1.6
long double ld2 = 1.7L;
cout << ld2 << endl;//1.7
#pragma endregion
#pragma region 4.特殊类型
//4-1.布尔类型:
// bool true false 表示真假的数据类型 真假类型
// C++中 bool被当作整型对待 因此 true代表1 false代表0
cout << "bool类型:\n";
bool b = true;
cout << b << endl;//1
bool b2 = false;
cout << b2 << endl;//0
//4-2.字符类型:
// char 是用来存储单个字符的变量类型
// 但是它不能用来存储所有字符,只用来存储ASCII编码的字符,例如中文就无法正常存储
// C++中 char也能被当作整型对待 字符对应的整数就是它的ASCII码值
cout << "字符类型:\n";
char a = 'a';
cout << a << endl;//a
char tao = '韬';
cout << tao << endl;//无法正常打印,因为超出存储范围
//4-3.字符串类型:
// string 用来存储多个字符的 没有上限,并且它可以用来存储任何字符,因为它采用的编码规则更广泛
cout << "字符串类型:\n";
string str = "韬老狮爱学习,好好学习,天天向上";
cout << str << endl;//韬老狮爱学习,好好学习,天天向上
#pragma endregion
#pragma endregion
#pragma region 知识点三 为什么有那么多不同的变量类型
// 不同的变量 存储的范围和类型不一样 本质是占用的内存空间不同
// 选择不同的数据(变量)类型装载不同的数据
//姓名
string myName = "韬老狮";
//年龄
short age = 18;
//身高
float height = 177.5f;
//体重
float weight = 75.5f;
//性别 true女 false男
bool sex = false;
//口诀:
//数字用int 小数用float或double 字符串用string 真假用bool
#pragma endregion
#pragma region 知识点四 多个相同类型变量 同时声明
//多个同类型变量声明
// 固定写法
// 变量类型 变量名 = 初始值,变量名 = 初始值,变量名 = 初始值...;
cout << "多个相同类型变量同时声明:\n";
int a1 = 1, a2 = 2, a3 = 3;
cout << a1 << endl;//1
cout << a2 << endl;//2
cout << a3 << endl;//3
string str1 = "123", str2 = "韬老狮";
cout << str1 << endl;//123
cout << str2 << endl;//韬老狮
#pragma endregion
#pragma region 知识点五 变量初始化相关
cout << "变量初始化相关:\n";
//变量声明时 可以不设置初始值 但是不建议这样写 这样不安全
int bb1, bb2 = 99, bb3;
bb1 = 10;
bb3 = 12;
cout << bb1 << endl;//10
cout << bb2 << endl;//99
cout << bb3 << endl;//12
#pragma endregion
}
5.3 练习题
请默写出我们学习的14种变量类型
有符号的整型
short
int
long
long long
无符号整型
unsigned short
unsigned
unsigned long
unsigned long long
浮点数
float
double
long double
特殊类型
bool
char
string
下面代码的输出结果是?
double num = 36.6;
cout << "num" << endl;
输出结果:num
因为输出的是"num"
字符串,而不是double
类型的num
变量。
声明变量时,在数值后面加的这些后缀L、LL、U、UL、ULL、F,分别代表什么?
L
——long
、long double
LL
——long long
U
——unsigned
UL
——unsigned long
ULL
——unsigned long long
F
——float
请定义一系列变量来存储你的名字、年龄、性别、身高、体重、家庭住址等,并打印出来。
string name = "韬老狮";
cout << "我的姓名是:" << name << endl;
unsigned short age = 18;
cout << "我的年龄是:" << age << endl;
bool sex = false; // true(1)是女 false(0)是男
cout << "我的性别是:" << sex << endl;
float height = 177.5f;
cout << "我的身高是:" << height << endl;
float weight = 75.5f;
cout << "我的体重是:" << weight << endl;
string address = "广州";
cout << "我的地址住在:" << address << endl;
小明的数学考试成绩是80,语文的考试成绩是78,英语的考试成绩是98,请用变量描述并打印
unsigned short shuxue = 80;
unsigned short yuwen = 78;
unsigned short yingyu = 98;
cout << "我的数学成绩是" << shuxue << endl;
cout << "我的语文成绩是" << yuwen << endl;
cout << "我的英语成绩是" << yingyu << endl;
5.4 练习题代码
Lesson05_练习题.cpp
#include <iostream>
using namespace std;
int main()
{
std::cout << "变量 练习题\n";
#pragma region 练习题一
//请默写出我们学习的14种变量类型
//1.有符号的整型
// short
// int
// long
// long long
//2.无符号整型
// unsigned short
// unsigned
// unsigned long
// unsigned long long
//3.浮点数
// float
// double
// long double
//4.特殊类型
// bool
// char
// string
#pragma endregion
#pragma region 练习题二
/*下面代码的输出结果是?
double num = 36.6;
cout << "num" << endl;*/
double num = 36.6;
cout << "num" << endl;//num 因为输出的是"num"字符串 不是double类型的num变量
#pragma endregion
#pragma region 练习题三
//声明变量时,在数值后面加的这些后缀L、LL、U、UL、ULL、F,分别代表什么?
// L —— long、long double
// LL —— long long
// U —— unsigned
// UL —— unsigned long
// ULL —— unsigned long long
// F —— float
#pragma endregion
#pragma region 练习题四
//请定义一系列变量来存储你的名字、年龄、性别、身高、体重、家庭住址等,并打印出来。
string name = "韬老狮";
cout << "我的姓名是:" << name << endl;
unsigned short age = 18;
cout << "我的年龄是:" << age << endl;
bool sex = false;//true(1)是女 false(0)是男
cout << "我的性别是:" << sex << endl;
float height = 177.5f;
cout << "我的身高是:" << height << endl;
float weight = 75.5f;
cout << "我的体重是:" << weight << endl;
string address = "广州";
cout << "我的地址住在:" << address << endl;
#pragma endregion
#pragma region 练习题五
//小明的数学考试成绩是80,语文的考试成绩是78,英语的考试成绩是98,请用变量描述并打印
unsigned short shuxue = 80;
unsigned short yuwen = 78;
unsigned short yingyu = 98;
cout << "我的数学成绩是" << shuxue << endl;
cout << "我的语文成绩是" << yuwen << endl;
cout << "我的英语成绩是" << yingyu << endl;
#pragma endregion
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com