指针常量与常量指针

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的变量,不能改动对应的属性。可是我们能够间接地改动他们的值---改动他们的可变属性。

原文地址:https://www.cnblogs.com/cxchanpin/p/7018447.html