大哥们小弟遇到问题了,帮帮忙。求解!
#include <stdio.h>#include <malloc.h>void print(char *,int);main(){ char *s1 = "abcde"; char *s2 = "abcde"; char s3[] = "abcd"; long int *s4; char *s5 = "abcde"; int a = 5; int b =6;//a,b在栈上,&a>&b 地址反向增长
我就纳闷了 为什么&a>&b 符号“&”不是取址操作符吗,那么&a>&b的意思就是 a的地址大于b的地址。看上面的代码和图片明显是先定义的a后定义的b, a先压入栈的,然后b在压入栈,应该是b的地址高啊a的地址低。。。这是怎么回事啊 ,我的理解是不是有问题。
求解
求解!!!
这是汇编,弄个C贴错地方了 你去看一下汇编, 入栈是push 指令esp = esp -4所以后进去的地址小, 所以&a > &b 你再看看你的图 栈是朝低地址方向的所以后进去的肯定小了 懂得了谢谢大神
页:
[1]