Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63552
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-15 14:57
文章分类

全部博文(21)

文章存档

2017年(3)

2016年(18)

我的朋友

分类: C/C++

2016-02-29 15:33:40

问题一: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) |
给主人留下些什么吧!~~