C++基础_指针的基本运算
指针的基本运算
&与*操作符
具体示例可以见下图:
代码演示:
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;
这是这段代码的汇编语言实现过程
其中最前面一列代表执行代码的地址, 第二列代表操作类型, 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++;
++操作的进一步说明
请相信自己
当我们迷茫,懒惰,退缩的时候 我们会格外的相信命运 相信一切都是命中注定
而当我们努力拼搏,积极向上时 我们会格外的相信自己
所以命运是什么呢? 它是如果你习惯它 那它就会一直左右你
如果你想挣脱它 那它就成为你的阻碍 可如果你打破了它 那它就是你人生的垫脚石!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!