代码之家  ›  专栏  ›  技术社区  ›  Martin

C中的优先级运算符

  •  -2
  • Martin  · 技术社区  · 8 年前

    我找到了这篇文章(来源: https://education.cppinstitute.org/

     c = *p++;
    

     c = (*p)++;
    

     c = *p;
     p++;
    

    换句话说 p 被复制到 c p .

     c = *p;
     string[1]++;
    

    这个 p

    = 操作员的优先级低于 ++

    3 回复  |  直到 8 年前
        1
  •  2
  •   John Bollinger    8 年前

    c = (*p)++;
    

    ,你说

    我不明白的是为什么[ p ]当=

    有一个非常简单的解释: 不会因计算该表达式而递增,因为它不是 ++

    = = 的操作数 是表达式 (*p) 而不是表达 c = (*p) p 在这种情况下,与没有括号的变体不同,它本身在运行中甚至不可能成为操作数。

    (*p) 指定要 p 积分,正如 *p string[1] ++ 活动

        2
  •  2
  •   halfer Jatin Pandey    4 年前

    我不明白的是为什么当 = 操作员的优先级低于 ++

    表达式的值示例

    x++
    

    是递增之前的x值。

    y = x++;
    

    然后是变量 y x 在其递增之前。

    2. 后缀++运算符的结果是操作数的值 . 即,向其添加适当类型的值1)。。。 这个 对结果的值计算进行排序 之前 的副作用 更新操作数的存储值。

    If而不是表达式

    c = (*p)++;
    

    你会写信的

    c = ++(*p);
    

        3
  •  -1
  •   Vaibhav    8 年前

    ++

    所以当你有

    y = x++;
    

    在y获得x的值后,x增加。

    操作员也是。