const关键字的作用是修饰 只读
#include <stdio.h>
int main(int argc, const char *argv[])
{
//const用来修饰普通变量
int a = 10;
a = 20;//正确的
const int b = 10;
printf("b = %d\n", b);//读 是允许的
//b = 20;//错误的
//const 用来修饰指针,有下面四种写法
//const int *p;
//int const *p;
//int * const p;
//const int * const p;
//技巧:要看 const 在 * 的左边还是右边
//如果是在左边,表示修饰的是 *p ,表示不能通过指针修改指向的内容
//const int *p1;
//int const *p2;
int m = 10;
int n = 20;
const int *p1 = &m;
m = 15;//正确的 只是不能通过指针 p1 来修改m的值了 m自己是可以修改了
//*p1 = 20;//错误的
p1 = &n;//正确的 可以改变指向
//如果是在右变,表示修饰的是 p, 表示指针的指向不能修改
//int * const p3;
int m2 = 10;
int n2 = 20;
int * const p3 = &m2;
*p3 = 520;//正确的
//p3 = &n2;//错误的 指针的指向不能修改
//如果左右都有const 那么就都不能修改了
//const int * const p4;
int m3 = 10;
int n3 = 20;
const int * const p4 = &m3;
//都是错误的,都不能修改了
//*p4 = 520;
//p4 = &n3;
return 0;
}