C++ 变量和常量:开启程序构建之门的关键锁钥与永恒灯塔
目录
一、变量
1.1 变量的创建
1.2 变量的初始化
1.3 变量的分类
1.4 变量的初始化
二、常量
2.1 字面常量
2.2 #define定义常量
2.3 const 定义常量
一、变量
1.1 变量的创建
data_type name;
| |
| |
数据类型 变量名
-------------
int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量
变量的命名规则遵循以下原则:
-
变量名只能由字母、数字和下划线组成,且必须以字母或下划线开头。
-
变量名不能以纯数字开头,也不能包含特殊字符,如空格、连字符等。
-
变量名不能使用语言的关键字,如 int、char、if等。
-
变量名应具有意义,有助于理解变量的含义和用途。
-
变量名应简短明了,避免使用过长的名称。
-
变量名应区分大小写,例如 myVariable 和 myvariable 被视为两个不同的变量。
1.2 变量的初始化
变量在创建的时候就给一个初始值,就叫初始化。
#include<iostream>
using namespace std;
int main()
{
int num1 = 10 ;
char ch = 'A';
double num2 = 3.1415926;
}
如果变量的创建并没有初始化,而是在后续进行初始化操作,那么该操作称为赋值:
#include<iostream>
using namespace std;
int main()
{
int num;
num = 10; //变量的赋值
}
1.3 变量的分类
-
全局变量:在大括号外部定义的变量就是全局变量。全局变量的使用范围更广,整个工程中想使用,都是有办法使用的
-
局部变量:在大括号内部定义的变量就是局部变量
局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的
#include<iostream>
using namespace std;
int NUM = 100;
int main()
{
int num = 200;
cout << NUM << endl;
cout << num << endl;
return 0;
}
如果局部和全局变量,名字相同:
#include<iostream>
using namespace std;
int NUM = 100;
int main()
{
int NUM = 200;
//当局部变量和全局变量名称相同的情况下,局部变量优先使用
cout << "局部变量:" << NUM << endl;
//如果我们需要强制使用全局变量,需要在变量前添加两个::
cout << "全局变量:" <<::NUM << endl;
return 0;
}
1.4 变量的初始化
未初始化状态下的全局变量和局部变量:
#include<iostream>
using namespace std;
int NUM1;
float NUM2;
int main()
{
int num1;
float num2;
// 未初始化的局部变量和全局变量
cout << NUM1 << endl;
cout << NUM2 << endl;
cout << "不同编译器的版本,局部变量未初始化的值是不确定的" << endl;
cout << num1 << endl;
cout << num2 << endl;
return 0;
}
-
全局变量:全局变量通常在定义时就被初始化,如果没有明确指定初始值,它们通常会被初始化为0。
-
局部变量:局部变量通常不会自动初始化。它们需要在使用之前明确地赋值或初始化。如果没有初始化,它们的值将是未定义的,使用未初始化的局部变量可能会导致不可预测的行为或运行时错误,因此局部变量建议初始化。
二、常量
常量就是不能被改变的值,通常我们会使用三种常量:
-
字面常量
-
#define 定义的常量
-
const 定义的常量
2.1 字面常量
-
整型常量: 100,-5,0,0x123 整型常量一般可以写成10进制、8进制、16进制。
-
10进制数字,如: 6、17、22、123
-
8进制数字,一般是数字0开头的,比如: 012 , 016
-
16进制数字,一般是0x开头的数字,比如: 0x123 , 0xFF
-
-
字符常量: 'a'
-
浮点型常量: 3.14 , 1E6 (科学计数法的形式)
2.2 #define定义常量
使用 #define 定义常量的时候是不关注类型的,只关注常量的名字叫啥,常量的值是啥,编译在处理这种常量的时候就是直接替换,在出现常量名字的地方,通通替换成常量的内容。
#include <iostream>
using namespace std;
#define M 100
#define CH 'x'
#define PI 3.14159
int main()
{
cout << M << endl;
cout << CH << endl;
cout << PI << endl;
return 0;
}
2.3 const 定义常量
除了上面的方式之外,C++中还可以使用 const 来定义常量,这种常量会有具体的类型。比#define 定义常量更加严谨。语法形式如下:
const 类型 常量名字 = 常量值;
const double PI = 3.14159;
#include <iostream>
using namespace std;
const double PI = 3.14159;
int main()
{
int r = 0;
cin >> r;
cout << "周长:" << 2 * PI * r << endl;
cout << "面经:" << PI * r * r << endl;
//PI = 3.14;//这种写法是错误的,常量不能被修改
return 0;
}
习惯上,这种常量的名字一般会写成大写,而普通变量的名字不会全大写,这样就可以做一个区分。
使用 const 定义的常量的好处:
-
增加了程序的可读性, PI 比 3.14159 更加容易理解和书写、使用。
-
增加了程序的可维护性,如果改变常量的值,只要在定义的部分修改,使用的地方也就随之改变了,做到了"一改全改"的效果。
-
常量是不能修改的,当然 const 定义的常量自然也不能修改。