这个是怎么回事?
一个c语言程序如下:
void func( long i1, long i2, long i3)
{
long j1,j2,j3;
printf("Address of i1,i2,i3 = %o,%o,%o\n",&i1,&i2,&i3);
printf("Address of j1,j2,j3 = %o,%o,%o\n",&j1,&j2,&j3);
}
void main()
{
long i1,i2,i3;
func(i1,i2,i3);
}
输出结果如下:
Address of i1,i2,i3 = 4577434,4577440,4577444
Address of j1,j2,j3 = 4577420,4577414,4577410
从上面的结果种可以看出,func函数的三个形式参数的地址依次升高,而三个局部变量的地址依次降低。输出的数字都是八进制。
为什么会出现这样的现象,高手帮忙解释一下,谢谢了。。。。。