概述
前缀++、–运算符优先级和解引用运算符*相等,从右向左结合
int main() {
array<int, 5> ai={1,2,3,4,5};
int* p = &ai[0];
//2
cout << *++p << endl;//将指针p指向的地址+1后再解引用(指针指向ai[1]的地址)
return 0;
}
int main() {
array<int, 5> ai={1,2,3,4,5};
int* p = &ai[0];
//2
cout << ++*p << endl;//解引用后得到ai[0]的值(1),再将值+1(指针依然指向ai[0]的地址)
return 0;
后缀++、–运算符优先级比解引用运算符*高,所以两个运算符从左向右结合,看不懂这句话可看下例
int main() {
array<int, 5> ai={1,2,3,4,5};
int* p = &ai[0];
//1
cout << *p++ << endl;
//由于++是后缀的,所以先解引用p(从左向右结合),
//由于后缀++优先级高于*,最后将++运算符用于p而不是*p,
//输出1之后将指针p指向数值第二个元素ai[1]的地址。
return 0;
int main() {
array<int, 5> ai={1,2,3,4,5};
int* p = &ai[0];
//2
cout << (*p)++ << endl;//()加持,先解引用后再将值+1(指针依然指向ai[0]的地址)
return 0;
最后
以上就是简单御姐为你收集整理的3分钟学会C++递增递减运算符和解引用运算符的优先级的全部内容,希望文章能够帮你解决3分钟学会C++递增递减运算符和解引用运算符的优先级所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复