【注意】地址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;
}