C和C++中的&符使用
在C中
直接讲知识点可能有点难理解,那我们就从代码入手。
在c中,&经常用于取地址
#include<stdio.h>
int main()
{
int a,b,*p,*q;
a=5;b=4;
p=&a;q=&b;//分别取a,b的地址
printf("%d %d\n",a,b);
swap(p,q);//调用方法
printf("%d %d",a,b);
}
void swap(int *m,int *n)
{
int t;
t=m;m=n;n=t;//互相交换
}
运行结果如下:
我们不难发现:调用方法时,交换的是a和b的地址,而a,b的值不会交换
在C++中
在C++中&也能取地址
#include<iostream>
using namespace std;
int main()
{
int a = 10;
cout << &a << endl;
}
运行结果如下:(输出的是一个内存地址)
在C++中&也能起引用的作用
引用的实质是对一个内存空间起别名。
即引用的是值。(地址不会改变)
#include<iostream>
using namespace std;
int main()
{
int a=5,b=4;
int &m = a;
int &n = b;
cout << a << ' ' << b << endl;
cout << &a << ' ' << &b << endl;
swap(m,n);//调用方法
cout << a << ' ' << b << endl;
cout << &a << ' ' << &b << endl;
}
void swap(int &p,int &q)
{
int t;
t=p;p=q;q=t;//互相交换
}
运行结果如下:(可以和C中的指针作比较)
本文纯属课堂笔记,不喜勿喷!
希望阅读完这篇文章,你能懂得区分,也能懂得运用!