1 常见的函数封装调用
2 指针变量的引入
1常见的函数封装调用 :下面 写一段代码来猜测一下 先不急着给答案 后面会有惊喜的
#include//测试大小交换是否成功void Print(int data,int data2){ int temp;//交换大小 temp=data; data=data2; data2=temp;}void main(void)//定义一个 void 类型的 无形参 main 函数{ int data=10;// 定义一个 int 类型的 data 变量 int data2=11; Print( data,data2);//调用封装函数 printf("最后交换 结果 :%d %d",data,data2);//打印数据}
这段代码 不多 但是很容易踩坑 我也相信大家有了答案
为什么 会出现这样的现象 函数不是发生调用了 并且打印 了
因为c语言 在你每生成一个函数 就会产生一个内存地址 虽然 发生了赋值 但是 并没有起到作用
因为在主函数定义的 就直接打印出来了 调用的函数 虽然传值过去了 但是不在同个地址操作
所以 不会 产生联系。
下面就是要在发生调用的函数中 引入改变形参类型 那就是 指针变量 定义一个指针变量 通过赋值的方式 存放地址到指针变量 通过函数操作交换大小
#includevoid Print(int *data,int *data2){ int temp;//交换大小 temp=*data; *data=*data2; *data2=temp;}void main(void)//定义一个 void 类型的 无形参 main 函数{ int data=10;// 定义一个 int 类型的 data 变量 int data2=11; Print(&data,&data2);//调用封装函数 printf("最后交换 结果 :%d %d",*(&data),*(&data2));//打印数据}
2 指针变量的引入
这里先说一下 调用函数他是怎么发生赋值的
左箭头 可以写成 int*data=&data 这里包含了初始化和定义 分开写是这样 int *data;data=&data;这样简单 这个就是他们发生赋值的写法过程分解。
指针变量 就是存放地址的变量 相对于 传一个主函数的地址 到指针变量;里面操作 相当于是一个同样的地址 这样才能完成数字大小交换 。