准确的说法是“数组名相当于指针常量”


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

送交者: Yush 于 2009-03-14, 14:09:14:

回答: 呵呵,数组名不等同于指针常量 由 eng 于 2009-03-14, 13:40:59:

你只看了C程序编成的汇编程序,还要注意汇编程序中的表示地址的符号其实是常数。不信你看看机器码:)

例如:
int a[10], *p;
p=a;
16为编译器生成的代码,相当于汇编:
mov ax, offset a
mov p, ax
也就是说,C中的a相当于汇编中的offset a(如果a在函数内定义,汇编中的offset a有可能是SI加上一个常数偏移),是个嵌入代码中的常数,代码载入内存后开始运行前即存在,运行时不改变。




所有跟贴:


加跟贴

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

标题:

内容: (BBCode使用说明