常量指针和指针常量(左数右指-const在*的哪边)

<span style="font-size:18px;">#include <iostream>

using namespace std;


int main()
{
	int a = 10;
	int b = 20;
	const int *p= &a;  //常量指针 ,修饰指向的实体,也即间访值,间访值为常量,不能修改,而指针值(地址)是可以修改的
	std::cout<<"p= &a"<<endl;
	std::cout<<p<<endl;
	std::cout<<"p= &b"<<endl;
	p = &b;
	std::cout<<p<<endl;
	std::cout<<*p<<endl;


	int c = 11;
	int d = 21;
	int const *ip = &c;
	std::cout<<"ip = &c  :"<<ip<<endl;
	ip=&d;
	std::cout<<"ip = &d   :"<<ip<<endl;
	return 0;
}</span>

常量指针:是指向常量的指针,也即const修饰指向的实体类型,指针值(地址)可以改,但间访值不能改。如上:*p = 100;程序就会出错,因为更改了间访值。

const int *p = &a;和int const *p = &a;是一样的,可以通过这样记忆。const int a = 20;和int const a = 20;两种写法的效果是一样的,都是定义a为常量;

*******************************************************************************************


#include <iostream>

using namespace std;


int main()
{
	int a = 10;
	int b =11;
	int * const p = &a;
	*p =100;
	std::cout<<*p<<endl;
}

指针常量:是相对于指针变量而言的。也就是指针值(地址)不能修改,但间访值可以修改。如果   p = &b;会发生错误,因为修改了地址。


定义指针常量还是常量指针,就看const的修饰了。若const修饰指针本身,则为指针常量;若修饰的是指针类型(指向的实体类型),则为常量指针。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值