8.4 指针作为函数参数(空指针 、交换两个变量的值)

【注意】地址0不能访问。

空指针:内容为0的指针(因为空指针里面不放置内容);或者是地址为0的指针。

NULL实际上就是整数0。NULL可以用来代表空指针。

int * p2 = 0; 表示p2指向地址0。 

不能写*pn = 。。int n=* pn;这种表达是错误的,因为绝大多数操作系统都不允许访问地址为0的内容,写读都不可以。

if(p) 相当于 p为真,即p != NULL    p!=0

if(!p)  !p为假,即p==NULL, p==0

&m 是(int *)类型的,是指针类型,形参相当于是实参的一个拷贝,p1因此指向地址m

Swap(& m , & n);这里必须加“&”符号,因为形参和实参的类型需要匹配,p1、p2是(int * )类型的,& m、&n也是(int * )类型

#include<iostream>
using namespace std;
void Swap(int *p1, int *p2)//p1所指向的内容和p2所指向的内容进行交换,形参是p1和p2,是(int *)类型的 
{
	int tmp = *p1;//将p1所指向的内容赋值给tmp 
	*p1 = *p2;//将p2所指向的内容赋值给p1所指向的变量 
	*p2 = tmp;//将tmp赋值给p2所指向的变量 
}
int main()
{
	int m = 3, n = 4;
	Swap(&m , &n);//必须加&符号,保证实参和形参类型匹配
	cout << m << " " << n << endl;//4 3
	return 0;
} 
 

猜你喜欢

转载自blog.csdn.net/yanyanwenmeng/article/details/81136356
8.4