c语言中const修饰指针变量

来源:互联网 发布:个人所得税申报的软件 编辑:程序博客网 时间:2024/05/01 21:27

const int * p; int const * p;

以上两个语句中的const都在*之前,都是用来修饰*p的,等价。
*p代表指针p所指向的变量。
不能修改*p就意味着不能通指针p来修改p所指向变量的值。
但是指针p的值可以修改,即可以改变p指向的变量(指针p里面保存的地址)。

const int *p;   /* 可以不必初始化p */int a = 1;p = &a;         /* 可以,*p为常变量,但p仍是普通变量 */*p = 2;         /* 错误 */

int * const p = &a;

此时,const直接修饰p,即指针p为常变量,p的值不能改变,即指针p所指向的位置不能改变,但是*p可以改变,即p指向的变量的值可以通过p来修改。

int * const p;      /* 错误,p为常变量,必须初始化 */int a = 1;int * const q = &a;*q = 2;             /* 正确 */
0 0
原创粉丝点击