我是靠谱客的博主 简单御姐,最近开发中收集的这篇文章主要介绍3分钟学会C++递增递减运算符和解引用运算符的优先级,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前缀++、–运算符优先级和解引用运算符*相等,从右向左结合

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++递增递减运算符和解引用运算符的优先级所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部