回 帖 发 新 帖 刷新版面

主题:[原创]SOS国际求救:指针问题

[em14]#include <stdio.h>
#define Lucky_Number 777
int main()

    int *p=Lucky_Number;
    printf("Is this my lucy_number? %d\n",*p);
    return 0;
}
编译不怎么不通过呢?
是不是int *p=Lucky_Number;有问题?

回复列表 (共11个回复)

11 楼

那个程序,照我改了之后的意图是以777为地址,显示地址为777的数据的值,编译没问题,运行时有问题,操作系统有限制,所以出了RunTimeError。

立即数?在程序里,所有的数据都存在存储器里,一条指令包括操作码和操作数,操作码指明‘做什么’,操作数指明‘对谁做’,一般是一个地址,这是寻址方式里面的知识,立即数寻址是说指令本身的操作数就是数据本身,而不是数据所在的地址,C语言里用#define定义的常量,跟在代码中直接使用的常量(像123,012,0xff)一样,在指令中直接作了操作数立即数。

我来回复

您尚未登录,请登录后再回复。点此登录或注册