跟和数值常量当然有区别,


所有跟贴·加跟贴·新语丝读书论坛

送交者: Yush 于 2009-03-16, 00:22:21:

回答: 这个和数值常量没区别,不用另起名字了 由 eng 于 2009-03-16, 00:11:49:

例如char a[10],a是个char*常数。
用这种方式理解程序中出现的数组名,能少费不少口舌。

局部数组例子我也给出过。其地址也是常数,只不过是栈中的相对地址,运行前即已决定。下面LEA一句,机器码8D46XX,其中XX是a相对于栈指针的偏移量(补码表示)。

int *p;
myfun()
{
int a[10];
p=a;
}
C中的p=a对应:
LEA AX, [bp+a在栈中的偏移地址(常数)]
MOV [p的偏移地址], AX




所有跟贴:


加跟贴

笔名: 密码: 注册笔名请按这里

标题:

内容: (BBCode使用说明