const的注意点和用法
注意:
修饰变量的变量必须初始化
const int i=1;//合法
const int j;//非法
同样,定义一个指针常量同样要初始化
int x;
int *const p;//错误
int *const q=&x;//正确,定义一个永远指向x的指针变量p
与上面容易混淆的是
int const *p;
const int *p;//都一样,都是创建一个指向常量的指针变量(即不能通过该指针变量修改其指向的变量的值)但可以通过原变量名修改值,因为原变量不是一个常变量
int x=1;
int const *p;
p=&x;
*p=2;//不行
x=3;//行
用法:
1.用const创建一个符号常量
const double pi=3.1415926;
2.在指针和参量声明中使用const
合理的使用const可以使编译器很自然的保护那些不希望被改变的参数
如 void f(const int *p)//就不能通过该指针修改变量
void printf_a(const int array[])//该函数的设计意图不是要修改数组的值,所以使用const保护数组变量
{ //array[0]=2;//错,不能修改 因为array是一个指向常量的指针
}
int main()
{ int array[10]={1,2,3,4,5,6,7,8,9,10};
printf_a(array);
}