lea eax,[ebx+8]就是将ebx+8这个值直接赋给eax,而不是把ebx+8处的内存地址里的数据赋给eax。
而mov指令则恰恰相反,例如:
mov eax,[ebx+8]则是把内存地址为ebx+8处的数据赋给eax。
(*this).age=3//点左边只能放对象
this->=3//箭头左边是指针
堆空间只能用指针
cc === int3中断断电
#include <iostream>
using namespace std;
class Person {
//成员变量(属性)
public:
int age;//创建的对象在栈中
//成员函数(方法)
//this指向了函数调用者
int name;
int heigh;
void run() {//不在栈里,只要是函数都在代码区
cout << "person ::run()" << age << name<<heigh << endl;
}
};
Person person1;//定义在外面在全局区(数据段)
int main() {
//java
//Person person = new Person();
//利用类创建对象
Person person;//person对象在函数栈空间
person.age = 10;
person.name = 11;
person.run();
Person *p = &person;//p在函数栈空间,自动分配和回收
p->age = 20;
p->run();
Person *p1 = (Person *)&person.name;
p1->age = 30;
p1->name = 22;
p1->run();
person.run();
getchar();
return 0;
}