const在C和C++里的区别


//1、C语言中
//a、const修饰的变量不能够再作为左值!!!初始化完成后,值不能被修改!!!
//b、const 在C语言中是一个常变量,不能被修改,但是它是一个变量,不是常量
int test()
{
	const int a = 10;
	int arr[a] = {};//错误,C语言中是常变量,本质还是个变量,此时数组初始化必须是变量
}
//2、C++中,所有出现const常量名字的地方,在编译阶段都被常量的初始化替换了!!!它是常量
int test2()
{
	const int a = 10;
	int arr[a] = {};//OK
}

//3、C++中,常量被一个变量赋值没退化成常变量
int test2()
{
	int b = 20;
	const int a = b;  // 已经改了!!!
	int array[a] = {};//错误,已经退化成常变量了 , 叫常变量   因为初始值不是立即数,是一个变量
}


你可能感兴趣的:(【道阻且长C++】,算法,c++)