指针常量与常量指针

本文详细介绍了C/C++中指针常量、常量指针的概念及使用方法,并通过示例说明如何正确理解和应用这些特性,同时指出可以通过间接方式修改其值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值