#include<stdlib.h>
#include<stdio.h>
#include<string>
void swap(int &a,int &b){
int tmp=a;
a=b;
b=tmp;}
int main(void){//引用可部分代替指针,引用=别名
int a=1;
int &b=a;
printf("a的值 %d,b的值%d\n",a,b);
printf("a的地址 %p,b的地址%p\n",&a,&b);
b=888;
printf("a的值 %d,b的值%d\n",a,b);
float c=10.1;
float &j=c;
int d=999;
swap(d,b);
printf("d的值 %d,b的值%d\n",d,b);
system("pause");
return 0;
}
#include<stdlib.h>
#include<stdio.h>
#include<string>
void swap(int* const a,int *const b){
int tmp=*a;
*a=*b;
*b=tmp;
}
int main(void){
int a=1;
int &b=a;//int *const b=&a;
int c=3;
printf("a=%d,b=%d,c=%d\n",&a,&b,&c);
swap(&c,&a);
printf("c=%d,a=%d\n",c,a);
system("pause");
return 0;
}
#include<stdlib.h>
#include<stdio.h>
#include<string>
void boyhome(int *&meipo){
static int boy=23;
meipo=&boy;}//省二级指针的理解,本身还是二级指针
int main(void){
int a=10;
int *p=&a;
int *&q=p;//指针的引用
printf("p=%d,q=%d\n",*p,*q);
int *meipo=NULL;
boyhome(meipo);
printf("boy=%d",*meipo);
system("pause");
return 0;
}
![]()