only 发表于 2006-11-27 12:29

〖讨论〗讨论下代码

#include <stdio.h>
void main()
{
int a,b;
b=4;
printf("%d",a[-1]);
}

该代码会不会编译通过,如果可以,那么输出结果是什么?
对于这种代码!delphi同样存在这个问题!有意思!

================================================

#include <stdio.h>
void main()
{
int b,a;
b=4;
printf("%d",a[-1]);
}
该代码会不会编译通过,如果可以,那么输出结果是什么?

笨笨啊 发表于 2006-11-27 12:37

应该会报错,呵呵

我是誰 发表于 2006-11-27 12:48

C语言一般编译是不会报错,但输出的结果就不一定了。取出的a[-1]是a之前的两个字节内存中的内容。不过像这种代码,如果改成:
void main()
{
int b,a;
b=4;
printf("%d",a);
}
是可以得到b的值4的。

我是誰 发表于 2006-11-27 12:53

我估计你的意思是这个:
void main()
{
int a,b;
a=4;
printf("%d",b[-1]);
}
这样也是可以输出a的值4
页: [1]
查看完整版本: 〖讨论〗讨论下代码