【C++学习笔记】递增/递减运算符和指针

1、前缀递增、前缀递减和解除引用运算符的优先级相同,以从右到左的方式进行结合。

(1)*++pt:将++应用于pt(因为++位于*的右边),然后将*应用于被递增后的pt

(2)++*pt:先取得pt指向的值,然后将这个值加1

(3)(*pt)++:首先对真正解除引用,然后应用运算符++

2、后缀递增、后缀递减的优先级相同,比前缀运算符的优先级高,以从左到用的方式进行结合。

(1)*pt++:后缀运算符++的优先级更高,意味着将运算符应用于pt而不是*pt,因此对指针递增。然而后缀运算符意味着将对原来的地址进行解除引用而不是递增后的新地址,该语句执行完毕后,pt的值将更改为最新地址。

3、示例:

#include <iostream>
int main()
{
	using namespace std;
	double arr[5] = {21.1, 32.8, 23.4, 45.2, 37.4};
	double *pt = arr;
	double a = *pt;
	cout << "*pt = " << a << endl;
	double b = *++pt;
	double c = ++*pt;
	double d = (*pt)++;
	double e = *pt++;
	cout << "*++pt = " << b << endl;
	cout << "++*pt = " << c << endl;
	cout << "(*pt)++ = " << d << endl;
	cout << "*pt++ = " << e << endl;
	cout << "*pt = " << *pt << endl;
	cin.get();
	return 0;
}

结果:


注意:递增运算符在程序中会影响了*pt所代表的的位置,*pt最开始所代表的是arr[0]的位置,++pt修改了位置变为arr[1],pt++也修改了位置变为arr[2]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值