C++笔记019:C++中的const修饰的是一个真正的常量


原创笔记,转载请注明出处!

点击【关注】,关注也是一种美德~


 

 

程序一:

我们知道数组的下标不能为变量,必须是一个确定的值。在C语言中看程序:

#define a 10

int main()

{

//第一部分

int c=20;

int d=10;

int arr[c+d];

 

//第二部分

//int const a=20;

//int const b=10;

//int arr[a+b];

 

return 0;

}

理所当然的编译错误,因为数组下标不能是变量。

在C++中看相同的程序。在C++中这点没有区别,数组下标不能为变量。同样会编译错误。

 

 

程序二

继续在C语言中看程序修改:

//#define a 10

int main()

{

//第一部分

//int c=20;

//int d=10;

//int arr[c+d];

 

//第二部分

int const a=20;

int const b=10;

int arr[a+b];

 

return 0;

}

 

发现编译错误!错误原因跟修改前一致!

也就是说:C语言中const定义的a、b实质并不是常量!还是变量所以称之为“常变量

在C++中看相同的程序:

int main()

{

//第一部分

//int c=20;

//int d=10;

//int arr[c+d];

 

//第二部分

int const a=20;

int const b=10;

int arr[a+b];

 

return 0;

}

 

编译通过!!!

结论

C++中的const修饰的是一个真正的常量而不是C中变量(只读。C++中在const修饰的常量编译期间,就已经确定下来了。

 

 


原创笔记,转载请注明出处!

更多精彩请关注微信公众号:依法编程


 

 

 
原文地址:https://www.cnblogs.com/tyyhmtyyhm/p/9005695.html