const指针

来源:互联网 发布:微博发淘宝优惠券 编辑:程序博客网 时间:2024/05/11 03:24

1const 在类型的前面

 const int var =100;  

2const 在类型的后面  

 int const varr=200;

/*这两种定义方式没啥区别 结果是一样的

const 变量在定义的时候进行初始化

当一个变量被声明为const变量,意味着该变量是一个常量,

不可呗修改。即:该变量只能做右值不能做左值

*/

/*const指针

1/在声明的时候进行初始化

2、指针不能在指向别的变量,指针的value不可更改

3、可以通过指针来修改变量的值

*/

// const指针指向的是const变量

//*******************************

/*指向常量的指针

1、指向常量的指针,防止通过指针去修改变量的值.不管该变量是否为const

int x =123;

const int *pc=&x;

*pc = 234;

printf("x=%d",x);

*/

/*

2、指向常量的指针,该指针可以指向别的变量,指针的value是可以更改的

*/

//3、指向常量的指针,不能赋值给一个普通的指针

const int x=3,y=5;

int z =7;

const int * pc = &x;

int * const cp =&z;

int *pp=&z;

//x=y; 不正确 const变量的值 不可以改变

//printf("%d\n",x);

//pc = &z; 正确  常指针 可以指向别的变量

//printf("%d",*pc);

//*pc = 10; 不正确 不能通过指针修改变量的值

//printf("%d",*pc);

//*pc=y; 不正确 指针不能指向别的变量

//printf("%d",*pc);

//pc=pp; 正确 指针的值可以更改

//printf("%d",pc);

//z=5; 正确  普通变量可以被赋值

//printf("%d",z);

//z=x; 正确  普通变量可以被 常变量赋值

//printf("%d",z);

//x=z;错误 常变量的值不可以更改

//printf("%d",z);

//*cp=x;正确  指向常量的指针的值  是可以改变的

//printf("%d",*cp);

//cp=&x; 错  常指针的值不能改变

//printf("%d",cp);

//pp=&x; pp是非const指针 可以赋值

//pp=pc; 错误 指向常量的指针,不能赋值给一个普通的指针

//printf("%d",pp);

pp= cp; //常指针可以赋值给普通指针

printf("%d",pp);

//pc=pp; 对  普通指针 可以赋给 指向常量的指针

//printf("%d",pc);