C语言指针
// 指针.cpp : 定义控制台应用程序的入口点。
//
#include "stdio.h"
void change(int **p1,int **p2)
{
int *tem;
tem=*p1;
*p1=*p2;
*p2=tem;
}
void changeNormal(int *p1,int *p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp;
}
void changeErr(int *p1,int *p2)
{
int *temp;
temp=p1;
p1=p2;
p2=temp;
printf("在函数里面:a=%d,b=%d\n",*p1,*p2);
}
void main()
{
int a=9,b=100;
int *p1,*p2;
p1=&a;
p2=&b;
int **mp1,**mp2;
mp1=&p1;
mp2=&p2;
printf("a和b的地址:a=%d,b=%d\n",&a,&b);
printf("起始地址:p1=%d,p2=%d\n",p1,p2);
change(mp1,mp2);
printf("结束地址:p1=%d,p2=%d\n",p1,p2);
printf("a和b的地址:a=%d,b=%d\n",&a,&b);
//changeNormal(&a,&b);
//changeErr(&a,&b);
printf("----------------------------------------------------------------------------------------\n");
printf("在函数外面:*p1=%d,*p2=%d\n",*p1,*p2);
printf("在函数外面:a=%d,b=%d\n",a,b);
}
//
#include "stdio.h"
void change(int **p1,int **p2)
{
int *tem;
tem=*p1;
*p1=*p2;
*p2=tem;
}
void changeNormal(int *p1,int *p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp;
}
void changeErr(int *p1,int *p2)
{
int *temp;
temp=p1;
p1=p2;
p2=temp;
printf("在函数里面:a=%d,b=%d\n",*p1,*p2);
}
void main()
{
int a=9,b=100;
int *p1,*p2;
p1=&a;
p2=&b;
int **mp1,**mp2;
mp1=&p1;
mp2=&p2;
printf("a和b的地址:a=%d,b=%d\n",&a,&b);
printf("起始地址:p1=%d,p2=%d\n",p1,p2);
change(mp1,mp2);
printf("结束地址:p1=%d,p2=%d\n",p1,p2);
printf("a和b的地址:a=%d,b=%d\n",&a,&b);
//changeNormal(&a,&b);
//changeErr(&a,&b);
printf("----------------------------------------------------------------------------------------\n");
printf("在函数外面:*p1=%d,*p2=%d\n",*p1,*p2);
printf("在函数外面:a=%d,b=%d\n",a,b);
}