看一个有趣的题目
struct mystruct
{
char a[10000];
int b;
BYTE c;
}b1,b2;
mystruct f(mystruct d)
{
d.b=200;
printf("d address is %x/n",&d);
return d;
};
主程序:
printf("b1 address=%x/n",&b1);
printf("b1.b=%d/n",b1.b);
printf("b2 address=%x/n",&b2);
printf("b2.b=%d/n",b2.b);
b1=f(b2);
printf("b1 address=%x/n",&b1);
printf("b1.b=%d/n",b1.b);
printf("b2.b=%d/n",b2.b);
b1=b2;
printf("b1.b=%d/n",b1.b);
结果是什么?
我机器上的输出是这样的
b1 address=405738
b1.b=0
b2 address=403020
b2.b=0
d address is 128a2c
b1 address=405738
b1.b=200
b2.b=0
b1.b=0