今天的重点利用指针进行子函数与主函数之间形参与实参的传递,通过指针让子函数作用在主函数变量上。老师用一个形象的例子讲述了他们之间的关系。主函数开辟了一个变量空间(例如在主函数中定义了一个变量a),子函数也开辟了自己独立的内存空间(例如定义了一个变量c)。各自只能打开各自的内存空间的门。每个人都有自己的一把钥匙,不能交叉查看。
1.子函数形参与主函数实参变量都有独立的存储空间,之间独立。且各自变量只在各自作用范围内起作用。例如在主函数中的变量a,b赋值给子函数的形参c,d。每个变量都有各自独立的存储空间。且子函数的存储在调用结束后,存储空间释放。c,d值消失。原则上函数是通过return值把数据传递回给主函数。
2.特殊之处就是指针。特殊之处是可以开创一个公用空间。主函数通过直接访问变量的方式查看公用空间,而子函数通过指针可用在子函数中查看公用空间并且可以操作。需要注意的是,这种公用空间一定要在主函数中建立。
下面自己写的利用指针做为形参的冒泡子函数
#include<stdio.h>
void bubb(int *a,int num)
{for(int i=0;ia[j+1])
{int temp;
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;}}
}
int main()
{
int b[5]={
9,56,8,4,7
};
bubb(b,5);
for(int i=0;i<=4;i++)
printf("%d ",b[i]);
}