今天的重點利用指針進行子函數與主函數之間形參與實參的傳遞,通過指針讓子函數作用在主函數變量上。老師用一個形象的例子講述了他們之間的關系。主函數開辟了一個變量空間(例如在主函數中定義了一個變量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]);
}