/*
记忆技巧
看const 和 * 的位置
如果 const 在 * 左侧 表示指针变量指向变量的值不能改变,但是指向可以改变
如果 const 在 * 右侧 表示指针变量指向变量的值可以改变,但是指向不能改变
如果 const 出现在 * 两侧 表示指针变量指向变量的值和指向都不能改变
*/
/*
const
是一个类型修饰符
使用const修饰变量则可以让变量的值不能改变
常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。
(1) const int Max=100; int Array[Max];
(2) 便于进行类型检查,如果被改变编译器会报错
(3) 可以让保护的值 免于被修改
(4) 可以节省空间 提高效率
...
const的使用
1) 修饰变量
int a = 10;
2) 修饰指针变量
3) 修饰数组
*/
void demo2(){
int a= 5;
int b=10;
//此处的const的作用是指针变量p的指向可以改变,但是指向的变量的值不能改变的
//1、const修饰的指针变量指向可变,指向的变量的值不可变
const int *p = &a; //给p初始化
p = &b; //重新修改了p的指向
// *P = 1000; 这样是错误的
int const *p1 = &a;
p1 = p;
// *p1=100; 这样是错误的
printf("a=%d\n",a);
//2、const修饰的指针变量,指针变量指向的变量值可以变,指向不能变
int * const p2 = &a;
*p2 = 2000; //值可以改变
// p2 = &b; 这样是错误的 p2的指向不能变
//3、const修饰的指针变量的指向和值,都不能改变
const int * const p3=&a;
// p3 = &b; //指向不能变
// *p3 = 100;//指向的变量的值也不能变
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |