![]() |
#2
yandongdido2007-09-18 12:16
|
*/ 出自: 编程中国 https://www.bc-cn.net
*/ 作者: yandongdido E-mail:yandong_dido@126.com QQ:358511709
*/ 时间: 2007-9-17 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------
我在看<<c++编程思想>>时看到如下的程序:
#include<iostream>
using namesplace std;
int dog,cat,bird,fish;
void f(int pet){
cout<<"pet id number:"<<pet<<endl;
}
int main(){
int i,j,k;
cout<<"f()"<<(long)&f<<endl;
cout<<"dog"<<(long)&dog<<endl;
cout<<"cat"<<(long)&bird<<endl;
cout<<"fish"<<(long)&fish<<endl;
cout<<"i"<<(long)&i<<endl;
cout<<"j"<<(long)&j<<endl;
cout<<"k"<<(long)&k<<endl;
}
当做出结果是:
f():4198736
dog:4323632
bird:4323640
fish:4323644
i:6684160
j:6684156
k:6684152
我知道在main()的内部和外部定义的变量存放在不同的区域,在内存中代码和数据一般是分开存放的
但大家请看dog:4323632 bird:4323640 fish:4323644中的顺序是按声明的顺序的
但在i:6684160 j:6684156 k:6684152中存放在内存的顺序和声明的顺序是相反的
这是怎么回事啊?
有什么规定吗?
[此贴子已经被作者于2007-9-18 12:09:45编辑过]