1、C++的const比C语言#define更好的原因?
首先,它能够明确指定类型,有类型检查功能。
其次,可以使用C++的作用域规则将定义限制在特定的函数[常函数]或文件中。
第三,可以将const用于更复杂的类型,比如数组和结构。
C语言中也有const,在C语言中分配内存,其与C++中const的区别是:一是作用域规则不同;另一个是,在C++中可以用const值来声明数组长度。在C++中const在没有取地址和加extern时,是不分配内存空间的,和#define有相同的效果,常量折叠。
注意:外部要能访问test.cpp中的const形式的n, 必须在test.cpp中定义的时候用extern限定。
test.cpp
extern const int n = 100; //必须加extern
#include <iostream>
using namespace std;
extern const int n;
int main()
{
cout << n << endl;
return 0;
} </iostream>
2、逗