场景一:封装一个函数,实现两个数的交换(指针)
#include<stdio.h>
void jiaohuan(int *data1,int *data2)
{
int emp;
emp = *data1;
*data1=*data2;
*data2=emp;
}
int main()
{
int data1 = 10;
int data2 = 20;
printf("交换前data1:%d,data2:%d\n",data1,data2);
jiaohuan(&data1,&data2);
printf("交换后data1:%d,data2:%d\n",data1,data2);
return 0;
}
结果:
注意事项:
1.main函数中指针函数的调用:括号中要有“&”;
2.void jiaohuan(int *data1,int *data2)
场景二:指向固定的内存地址(区域)
#include<stdio.h>
int main()
{
int a = 100;
printf("a的地址为:0x%p\n",&a);
int *p = (int *)0x000000000061FE33;
printf("p的地址为:0x%p\n",p);
return 0;
}
结果:
注意事项:
1.printf括号中的0x表示十六进制数;
2.注意定义地址的写法 :int *p = (int *)0x000000000061FE33;
3.注意第二个printf()中的p没有加任何前缀