zoukankan      html  css  js  c++  java
  • C++基础_指针的基本运算

    指针的基本运算

    &与*操作符

    具体示例可以见下图:
    image
    image
    代码演示:

       char ch = 'a';
       // &操作符
       // &ch = 97;			// &ch左值不合法
       char* cp = &ch;			// &ch右值
    
       //&cp = 97;				// &cp左值不合法
       char** cpp = &cp;		// &cp右值
    
       // *操作符
       *cp = 'a';				// 
       char ch2 = *cp;
       // *cp + 1  = 'a';
       ch2 = *cp + 1;
       *(cp + 1) = 'a';
       ch2 = *(cp + 1);
    

    ++与--操作符

    示例:
    char* cp2 = ++cp;
    image
    这是这段代码的汇编语言实现过程
    其中最前面一列代表执行代码的地址, 第二列代表操作类型, eax和ecx代表不同的寄存器,dword ptr [cp]代表从指针cp指向的地址中取出值
    003716E2 mov eax,dword ptr [cp] 解析:执行003716E2内存地址代码,将指针cp写到eax寄存器中
    003716E5 add eax, 1 解析:将寄存器eax中的指针cp加一
    003716E8 mov dowrd ptr [cp],eax 解析:再将寄存器eax中的(加了一的指针cp)写回(覆盖)指针cp
    下面2步同理,将指针cp再写到ecx寄存器中,再将ecx寄存器里面(加了一的指针cp)写回指针cp2

    char* cp3 = cp++;
    image

    ++操作的进一步说明
    image
    image


    请相信自己

    当我们迷茫,懒惰,退缩的时候 我们会格外的相信命运 相信一切都是命中注定

    而当我们努力拼搏,积极向上时 我们会格外的相信自己

    所以命运是什么呢? 它是如果你习惯它 那它就会一直左右你

    如果你想挣脱它 那它就成为你的阻碍 可如果你打破了它 那它就是你人生的垫脚石!


    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    分布式-通信(NIO&BIO&网络模型&零拷贝)
    cmake构建和链接静态库与动态库
    ldd
    CMAKE_BUILD_TYPE
    C/CXX attribute
    ffmpeg使用说明(2):ffmpeg提取video,audio,yuv/rgb,PCM
    ffmpeg使用说明(1):ffmpeg帮助使用指南
    ffmpeg使用说明(0):ffmpeg/ffplay/ffprobe
    ffplay使用帮助说明
    书写log的艺术
  • 原文地址:https://www.cnblogs.com/suguangti/p/15431310.html
Copyright © 2011-2022 走看看