C41-为什么要用指针
一 原因一
- 在封装函数内,由于形参与实参在数据传递上是单向的,无法修改主函数的变量值,需要引入指针
- 我们以封装一个交换数据的函数为例
引入指针前
- 代码示例:
#include <stdio.h>//封装函数
void ChangeData(int data1,int data2)
{int temp;temp=data1;data1=data2;data2=temp;
}//主函数
int main()
{ //变量初始化int data1=10;int data2=20;//打印交换前printf("交换前:data1=%d,data2=%d\n",data1,data2);//调用交换函数ChangeData(data1,data2);//打印交换后printf("交换后:data1=%d,data2=%d\n",data1,data2);return 0;
}
- 成果展示:
我们发现,结果中数据并未交换成功
引入指针后
- 代码示例:
#include <stdio.h>//封装函数
void ChangeData(int *p_data1,int *p_data2)
{int temp;temp=*p_data1;*p_data1=*p_data2;*p_data2=temp ;
}//主函数
int main()
{ //变量初始化int data1=10;int data2=20;//打印交换前printf("交换前:data1=%d,data2=%d\n",data1,data2);//调用交换函数ChangeData(&data1,&data2);//打印交换后printf("交换后:data1=%d,data2=%d\n",data1,data2);return 0;
}
- 成果展示:
二 原因二
- 在嵌入式领域,用于指向固定的内存地址
果展示:
[外链图片转存中…(img-tXw8Wmpk-1747398970800)]
二 原因二
- 在嵌入式领域,用于指向固定的内存地址
如: