C++的引用就是把&写在形参前面,此时在其他函数里操作形参与在主函数里操作实参的效果是一样。
操作一个数
直接上代码:
#include<stdio.h>
int change(int &a){
a++;
}
int main() {
int a=10;
change(a);
printf("%d",a);
}
输出为:
11
C想要达到这样的效果就要用指针了;
即:
#include<stdio.h>
int change(int *a){
(*a)++;//此处*的优先级高于++,所以要加上()才是a的值+1,不加()是对a的地址+1;
}
int main() {
int a=10;
change(&a);
printf("%d",a);
}
输出也是:
11
两个数的交换
把a和b进行交换
C++的引用代码:
#include<stdio.h>
int swap(int &a,int &b){
int t;
t=a;
a=b;
b=t;
}
int main(){
int a=10;
int b=12;
printf("交换前a=%d b=%d\n",a,b);
swap(a,b);
printf("交换后a=%d b=%d\n",a,b);
}
输出:
交换前a=10 b=12
交换后a=12 b=10
对应的C,即指针:
#include<stdio.h>
int swap(int *a,int *b){
int t;
t=*a;
*a=*b;
*b=t;
}
int main(){
int a=10;
int b=12;
printf("交换前a=%d b=%d\n",a,b);
swap(&a,&b);
printf("交换后a=%d b=%d\n",a,b);
}
输出:
交换前a=10 b=12
交换后a=12 b=10