1、指针常量
顾名思义,指针‘是’常量,指针不可更改,声明顺序与读法顺序同样。
int a;
int * const p = &a //指针常量
*p能够改动*p = 8。(OK)
p不能够改动 p++;(ERROR)
2、常量指针
顾名思义。常量‘的’指针
int a,b。const int *p = &a;//常量指针
此时
*p不可改动 *p = 8。(ERROR)p 能够改动 p = &b (OK)
3、其他
另一种const int * const p = &a; // *p 和 p均不可改变了
4、不可更改吗
// test_max.cpp : 定义控制台应用程序的入口点。
//去除文件srcfile中的凝视
#include "stdafx.h"
#include <stdlib.h>
int main(void)
{
int c=100;
int d=200;
int* const a=&c;
const int* b=&d;
printf("*b=%d
",*b);
d=300; //*b是常量,d不是常量
printf("*b=%d
",*b);
printf("*a=%d
",*a);
c=400;
printf("*a=%d
",*a);
system("pause");
return 0;
}
可见。所谓的常量指针和指针常量,仅仅是被声明为带有const的变量,不能改动对应的属性。可是我们能够间接地改动他们的值---改动他们的可变属性。