![]() |
#2
xufen3402009-08-31 12:18
|

[code]#include<iostream>
using namespace std;
int main()
{
int i;
i=100;
int &j=i; //定义也需赋值;
cout<<"j "<<j<<endl;
j=200;//引用自己更改自身数值,
cout<<"i "<<i<<endl;
cout<<"j "<<j<<endl;
int k;
k=5;
//================
const int &h=k;//常量引用,只能够被赋值不能够更改自身的数值,并且在其定义时必须赋值。
cout<<"h "<<h<<endl;
k=160;//更改整形变量K的值
cout<<"k "<<k<<endl;
cout<<"h "<<h<<endl;
//=================================
int *p; //定义指针*P
p=&j;//指针指向引用j
cout<<"*p "<<*p<<endl;
*p=105;
cout<<"指针第一次更改过数值引用j 值"<<j<<endl;
cout<<"指针第一次更改过数值*p "<<*p<<endl;
//===============================
//为什么这里指针更改过数值,引用值改了,下面指针更改数值后,k的值没有变化,这个是啥原因??
*p=k;
cout<<"*p "<<*p<<endl;
k=*p;
*p=560;
cout<<"指针指向k更改过数值后的值 "<<k<<endl;
cout<<"指针更改过数值后*p值 "<<*p<<endl;
}
这里面指针P的值我改变了一下,为什么被指向的值K的值没有改变using namespace std;
int main()
{
int i;
i=100;
int &j=i; //定义也需赋值;
cout<<"j "<<j<<endl;
j=200;//引用自己更改自身数值,
cout<<"i "<<i<<endl;
cout<<"j "<<j<<endl;
int k;
k=5;
//================
const int &h=k;//常量引用,只能够被赋值不能够更改自身的数值,并且在其定义时必须赋值。
cout<<"h "<<h<<endl;
k=160;//更改整形变量K的值
cout<<"k "<<k<<endl;
cout<<"h "<<h<<endl;
//=================================
int *p; //定义指针*P
p=&j;//指针指向引用j
cout<<"*p "<<*p<<endl;
*p=105;
cout<<"指针第一次更改过数值引用j 值"<<j<<endl;
cout<<"指针第一次更改过数值*p "<<*p<<endl;
//===============================
//为什么这里指针更改过数值,引用值改了,下面指针更改数值后,k的值没有变化,这个是啥原因??
*p=k;
cout<<"*p "<<*p<<endl;
k=*p;
*p=560;
cout<<"指针指向k更改过数值后的值 "<<k<<endl;
cout<<"指针更改过数值后*p值 "<<*p<<endl;
}
只有他自己变了。我下面又定义了一个指针变量l为什么他又可以
改变别的数值了。难道是因为
指针P指向过一次引用j??
这个是啥原因造成的啊!![/code]