我正在通过 C 并来到以下示例,我无法从“C 上的指针”一书中理解。这是代码。
以下声明存在于一个源文件中:
int a[10];
int *b = a;
但是在不同的源文件中,这段代码是这样写的:
extern int *a;
extern int b[];
int x, y;
...
x = a[3];
y = b[3];
有人可以解释执行两个赋值语句时会发生什么吗?(假设整数和指针都占用四个字节。)
当我尝试运行代码时,它给了我分段错误x
,当我将它注释掉并打印 y 的值时,它给了我 0。这个概念是指针和数组之间的一些区别。