之前说过将字面值常量用变量替换,变量是可以随时改变的,而我们在编写的时候需要一些不变的值,也就是常量。
例如,物理公式E=mc^2, c是一个完完全全的常量,我们在程序中是不需要也不可能改变这个值的,这个时候我们就可以用const修饰符把变量定义为常量。
//const常量
#include<iostream>
using namespace std;
//const 常量
int main()
{
const int a=1;
a =2;
return 0;
}
这个例子展示了const常量的用法,乍一看之下const常量与变量并没有明显的区别,但是在后面加上一个“a=2”,尝试去改变常量的值,则会出现编译错误。这就是const限定的变量与普通变量之间的区别。
如果不用const定义变量,而是自己想着去注意不去改变变量的值,这个方法是不可取的,很容易导致犯错,在使用const之后就不用担心变量有没有被重新赋值的问题了。
此外,在使用const定义之后,代码的意义也更加的清晰了,那些是变量,哪些是常量,就可以一目了然。
//typedef 的应用
typedef关键字的作用是定义变量类型的别名。
#include<iostream>
using namespace std;
//typesef 的应用
int main()
{
typedef int age ;
typedef int score ;
typedef int tel ;
age myAge = 20 ;
score myScore = 80 ;
tel myTel = 123456 ;
}
在例子中,使用typedef定义了学生的年龄、成绩、电话号码,三者的实现都是整型,这样看上去似乎毫无必要,但是对于一个开发人员来说时很有意义的,这样会使变量类型的意义更清晰,有于类型中自带了变量的含义和用途,因此我们还可以缩短变量名的长度。此外,如果需要用字符来表示电话号码,直接修改typedef就可以了,而不用去将程序中所出现的int都换为string。
typedef的另一个作用就是用简短的名字来代替复杂的类型名,这使复杂的类型名更容易理解。
//例
#include<iostream>
using namespace std;
//用typedef 重定义复杂类型名
int main()
{
typedef vector<vector<int>> vec2D;
vec2D vec2d;
return 0 ;
}
这便将复杂的 vector<vector<int>> 的定义用vec2D来表示,缩减了程序的长度并增加了可读性。