#include <iostream>
using namespace std;
int main()
{
	const int i=10;
	int *pi,*pt;
	pi=(int *)&i;
	pt=(int *)&i;
	cout<<*pi<<endl;
	*pi=11;
	cout<<*pi<<" "<<i<<" "<<*pt<<endl;
	cout<<pi<<" "<<&i<<" "<<pt<<endl;
	return 0;
}

以上的代码输出会是什么呢?

在Linux下或是在Windows下结果都一样...用了微软的C++以及开源的G++编译器

最后结果相同.

首先是那几个变量的地址是一样的.

在输出*pi,*pt时结果是11,输出i的结果却是10

, ,

已经有6个回复

  1. upsuper Says @ 08-05-23 9:14 下午

    跟你说了是编译器优化……

  2. upsuper Says @ 08-05-23 9:15 下午

    网址留错了。。。再来一贴

  3. MRain Says @ 08-05-24 10:45 上午

    我不是也说了是编译器优化吗。。
    留错了?什么东西阿?

  4. upsuper Says @ 08-05-25 9:35 上午

    网址留错了。。。

  5. 老先生 Says @ 08-06-5 8:47 下午

    你怎么也不搞个留言板之类的,这样留言多吃力啊,你我可得链接上,祖国的花朵啊,^O^
    多照顾照顾老人家生意啊

  6. MRain Says @ 08-06-6 1:50 上午

    呵呵.链接没问题..
    留言板..去搞个.

看完了要说点啥么?