指针和地址,配图.望对新人有帮助
http://bbs.fishc.com/data/attachment/album/201307/04/133209euuabpta5vxqvqlv.png指针就是地址的说法,很容易让新手引入误区.
int i=0x87654321 ;
int *p=&i;
*p=0xabcde1 ;
00D0101E C745 F8 2143658> mov dword ptr ss:,0x87654321 ;; int i=0x87654321;
00D01025 8D45 F8 lea eax,dword ptr ss: ;;eax =&i ; 暂存变量 i 的地址
00D01028 8945 F4 mov dword ptr ss:,eax ;;p=eax=&i ; 指针的右值 指向 变量地址
00D0102B 8B4D F4 mov ecx,dword ptr ss: ;;ecx=p ; 暂存指针指向的地址
00D0102E C701 E1CDAB00 mov dword ptr ds:,0xABCDE1 ;;*p=0xABCD1 ; 在指针指向的地址中赋值
若能对新手有些许的帮助,我就很开心了.学习指针的过程中,云山雾绕的感觉,真是嘘嘘不已.
若有不对的地方,还请大家指教.
图画得很认真,有个地方写错了,(int*)*x=NULL;应该改为int**x=NULL;或int*(*x)=NULL;或int(**x)=NULL; 仰望天上的光 发表于 2013-7-4 14:11 static/image/common/back.gif
图画得很认真,有个地方写错了,(int*)*x=NULL;应该改为int**x=NULL;或int*(*x)=NULL;或int(**x)=NULL;
恩,是的. 只是想 让新人明白, 指针 指向的是int * 的 指针. 谢谢你的回复. 确实难懂lea是传址 mov是赋值吗 再看看,温故而知新 很透彻,学习了 新手学习下哈,呵呵 支持下............. 支持下..... 感谢分享,,表示在学到指针的时候>>>我是谁??我在哪??{:10_245:} 感谢 学习学习 这个挺棒 谢谢 感谢分享! 好 学习了 {:10_281:} 感谢分享! 感谢大佬分享