问题一:int *pii=&i,pjj=j;和 int* pi=&i; int* pj=&j;的区别。
问题二:Pointer_Quote(&i,&j);不能直接传递&i,&j。
问题三:Pointer_Quote1(pii,pjj);引用就是别名,和对象共享一个地址,
问题四:Pointer_Quote(pi,pj);并没有修改i和j的值,只是改了指针pi和pj。
#include"PointerQuote.h"
void Pointer_Quote(int* &ii,int* &jj)
{
int* temp=ii;
ii=jj;
jj=temp;
}
void Pointer_Quote1(int* &i,int &j)
{
int* temp=i;
i=&j;
j=*temp;
}
#include"iostream"
#include"PointerQuote.h"
using namespace std;
int main()
{
int i=1,j=2;
int *pii=&i,pjj=j;
int* pi=&i;
int* pj=&j;//必须分开定义pi和pj即不能写成int* pi=&i,pj=&j;
Pointer_Quote(pi,pj);
cout<<"pi="<<*pi<<",pj="<<*pj<
cout<<"i="<
// Pointer_Quote(&i,&j);//该句错的原因是&i,&j是一个常量,而Pointer_Quote函数的参数是非常量的,如果要解决此问题需要改为void Pointer_Quote(int* const &ii,int*const &jj);但是就不可以修改ii和jj的值了;
// cout<<"i="<
Pointer_Quote1(pii,pjj);
cout<<*pii<<","<
return 0;
}
阅读(1212) | 评论(0) | 转发(0) |