指针常量与常量指针

来源:互联网 发布:开发java最好用的软件 编辑:程序博客网 时间:2024/05/18 15:05

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\n",*b);d=300;//*b是常量,d不是常量printf("*b=%d\n",*b);printf("*a=%d\n",*a);c=400;printf("*a=%d\n",*a);system("pause");return 0;}

可见,所谓的常量指针和指针常量,只是被声明为带有const的变量,不能修改相应的属性,但是我们可以间接地修改他们的值---修改他们的可变属性。

0 0