|  | 
 
 发表于 2016-5-29 11:07:05
|
显示全部楼层 
| 本帖最后由 yeeeee 于 2016-5-29 11:08 编辑 
 编译器是这样编译两个printf指令的
 
 复制代码lea edx,[local.5] ;char i[]的地址
push edx
push offset asd.??_C@_0BA@FAPA@char?5adr>;  ASCII "char adr is:%p"
call asd.printfgvdbgind_blockeressges
add esp,0x8
printf("char adr is:%p",i);
lea eax,[local.5] ;char i[]的地址
push eax
push offset asd.??_C@_0BA@FAPA@char?5adr>;  ASCII "char adr is:%p"
call asd.printfgvdbgind_blockeressges
add esp,0x8
printf("char adr is:%p",&i);
这个指针指向的是数组的第一个元素的地址
 但是这只是一个指针
 也就是说这个指针的地址就是第一个元素的地址
 因为这个已经是地址了
 所以取址符号取出来的地址和原来的地址是一样的
 
 
 来自 【鱼C】C语言交流群 159226010
 | 
 评分
| 参与人数 1 | 荣誉 +5 | 鱼币 +5 | 贡献 +3 | 收起
理由 |  
|  冥顽 | + 5 | + 5 | + 3 | 非常感谢! |  
查看全部评分
 |