C++引用和指针简单样例对比

来源:互联网 发布:20142015cba总决赛数据 编辑:程序博客网 时间:2024/06/06 11:38

宏swap  http://blog.csdn.net/u014646950/article/details/51603374

c中没有引用,c++才有引用

所以此处用的g++编译


//compile:g++ p_quote.c//run: ./a.out//c中没有引用,C++中有引用#include<stdio.h>#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))void pq(int &a,int &b){  printf("quote a=%d b=%d\n",a,b);  printf("quote &a=%d &b%d\n",&a,&b);  swap(a,b);//交换}void p(int *a,int*b){  printf("point a=%d b=%d\n",a,b);  printf("point &a=%d &b=%d\n",&a,&b);  printf("point *a=%d *b=%d\n",*a,*b);   swap(*a,*b);//交换}int main(){   int aa=0,bb=1;   printf("main val %d %d\n",aa,bb);   printf("main addr %d %d\n",&aa,&bb);   pq(aa,bb);   printf("after quote  swap:a=%d b=%d\n",aa,bb);   p(&aa,&bb);   printf("after point  swap:a=%d b=%d\n",aa,bb);  return 0;}



屏幕输出

main val 0 1main addr -1451064500 -1451064504quote a=0 b=1quote &a=-1451064500 &b-1451064504after quote  swap:a=1 b=0point a=-1451064500 b=-1451064504point &a=-1451064536 &b=-1451064544point *a=1 *b=0after point  swap:a=0 b=1


0 0
原创粉丝点击