递增/递减运算符和指针

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Nliki/article/details/89217802

我们先看下这段代码,想一想输出结果会是什么?

int main()
{
	//递增/递减运算符和指针   Nliki
	using namespace std;
	int nliki[] = {23,32,33,36,38,56,58,66,88};
	int *pt = nliki;
	cout << "++*pt  = " << ++*pt <<  endl;
	cout << "*pt++  = " << *pt++ << endl;
	cout << "*++pt  = " << *++pt << endl;
	return 0;
}

输出的结果是这样的:

++*pt  = 24
*pt++  = 24
*++pt  = 33

对于上面的“++*pt”、“*pt++”和“*++pt”一脸猛然,二两迷茫...

nliki数组

++*pt

*++pt

先说下递增/递减运算符和指针运算优先级:对于*和++/--同时用于指针,什么时候递增/递减,什么解除引用,这取决于运算符的位置和优先级。1.前缀递增/递减和解除引用运算符的优先级相同,以从右到左的方式进行结合;2.后缀递增/递减的优先级相同,但比前缀运算符的优先级高,以从左到右的方式进行结合。简而言之:++和*位于指针前,以从右到左的方式进行结合;++位于指针后,以从左到右的方式进行结合。
 

猜你喜欢

转载自blog.csdn.net/Nliki/article/details/89217802