什么是指针?什么是变量?
理解a:都一样,都是变量,都是用内存放东西。
理解b:就像2张桌子,上面放2种水果,l个放指针,1个放变量,只是数据结构不一样。
相同点:用理解B中的活就是不管里面放什么,2张桌子不变。
即:内存地址不变。
不同点:里面放的东西不一样。指针里面放的是内存地址,普通变量放的是 普通数据!
。例子: int b=10; 设为局部变量
int *a=b; 设为局部变量
汇编: ∥申请内存
mov ebp,esp
sub esp,8
其中b地址为ebp-8
其中a地址为ebp-4
mov 【ebp-8】,10 ∥b=10
lea eax,【ebp一8】 ∥eax=&b
mov 【ebp一4】,eax ∥*a=b
上面不理解大概说下过程:①首先申请2块内存,这2块内存地址不变,其中b里面放10,a不确定。
②把b的地址放到丨个通用寄存器里
③再把通用寄存器的东西放a里面
即:a里放的是b地址
业余人员记录下以前业余学的,匆喷,高兴就点个赞