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


请相信自己

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

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

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

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


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

原文地址:https://www.cnblogs.com/suguangti/p/15431310.html