zoukankan      html  css  js  c++  java
  • C/C++ (*p)++ 与 *p++的区别

    1、分析如下代码

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int *p1 = NULL, *p2 = NULL;
    
        int buf1[2] = {10, 5};
        int buf2[2] = {10, 5};
    
        p1 = &buf1[0];
        p2 = &buf2[0];
       
        cout << (*p1)++<<endl;
        cout << *p1 << endl;
       
        cout << *p2++ << endl;
        cout << *p2 << endl;
        return 0;
    }

    运算结果如下:

    10
    11
    10
    5


    这说明了
    (*p1)++ 是先取了变量,然后对变量值进行了++运算。结果是指针变量的值未发生变化。
    *p2++   是先取指针指向的变量值,然后对指针进行++运算。结果是指针变量的值更新为新变量的地址。在下一次运算时生效。

  • 相关阅读:
    重排序
    线程的生命周期状态
    并发的有序性
    并发的可见性
    并发的原子性
    Java内存模型
    缓存一致性协议MESI
    lsof
    nmap
    elastcisearch简介
  • 原文地址:https://www.cnblogs.com/aqing1987/p/4207557.html
Copyright © 2011-2022 走看看