#include
using namespace std;
int main()
{
int *p1,*p2,*p; //p也是指针变量。
int a,b;
cout<
cin>>a>>b;
p1=&a;
p2=&b;
if(a
{
p=p1;//将p1和p2的指向互换。
p1=p2;
p2=p;
}
cout<
<
<
cout<
<
<
return 0;
}
运行效果:
扩展资料:
1、定义指针变量的一般形式如下:
类型名*指针变量名1,*指针变量名2,...*指针变量名n;
2、空指针
空指针是一个特殊的指针,它的值是0,C语言中用符号常量NULL(在stdio.h中定义)表示这个空值,并保证这个值不会是任何变量的地址。空指针对任何指针类型赋值都是合法的。一个指针变量具有空指针值表示当前它没有指向任何有意义的东西。
3、void指针
(void*)类型的指针叫通用指针,可以指向任何的变量,C语言允许直接把任何变量的地址作为指针赋给通用指针。但是需要注意void*不能指向由const修饰的变量。
例如:const int test;void*ptv;ptv=&test;第三句是非法的,只有将ptv声明为const void*ptv;,上述第三句ptv=&test才是合法的。
当需要使用通用指针所指的数据参加运算时,需要写出类型强制转换。如通用指针ptv所指空间的数据是整型数据,p是整型指针,用此式转换:p=(int*)ptv;