Bootstrap

c++ const常量、typedef的应用

        之前说过将字面值常量用变量替换,变量是可以随时改变的,而我们在编写的时候需要一些不变的值,也就是常量。

例如,物理公式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来表示,缩减了程序的长度并增加了可读性。

;