子函數引用主函數中的值,在子函數程序中如果對這個值有修改,調用返回后不會保留修改后的值,依然是引用前的值。引用主函數某個值的地址,可以對這個值進行修改,并把修改后的值返回。
創新互聯公司是一家以網絡技術公司,為中小企業提供網站維護、成都網站設計、成都網站制作、網站備案、服務器租用、域名申請、軟件開發、成都小程序開發等企業互聯網相關業務,是一家有著豐富的互聯網運營推廣經驗的科技公司,有著多年的網站建站經驗,致力于幫助中小企業在互聯網讓打出自已的品牌和口碑,讓企業在互聯網上打開一個面向全國乃至全球的業務窗口:建站歡迎來電:13518219792
可以通過函數指針(也就是你說的函數地址)調用,可以這樣使用:
#include
int
fun(int
a)
{
printf("a
=
%d\n",
a);
printf("hello
world\n");
}
int
main()
{
int
(*pFun)(int
a);
pFun
=
fun;
(*pFun)(123);
return
0;
}
輸出結果:
123
hello
world
引用庫函數只要定義了頭文件就可以,比如引用庫函數printf()和scanf():
#includestdio.h
void main()
{
printf("輸出函數");
scanf("輸入函數");
}
引用自己定義的函數一般需要先聲明(如果引用位置在定義位置之后,就不需要聲明可直接引用。例如:
#includestdio.h
void main()
{
void sum();/*函數聲明*/
sum();/*函數引用*/
}
void sum()/*定義一個函數sum*/
{……}/*函數體省略*/
C語言調用函數就是先定義并聲明函數,之后再根據定義函數的格式調用。
下面舉例來說明函數調用方法:
#includestdio.h
int fun(in t x, int y); // 函數聲明,如果函數寫在被調用處之前,可以不用聲明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函數的調用,調用自定義函數fun,其中a,b為實際參數,傳遞給被調用函數的輸入值
}
// 自定義函數fun
int fun(int x, int y) // 函數首部
{ // {}中的語言為函數體
return xy ? x : y; // 返回x和y中較大的一個數
}
f(a); //調用函數f,q指向a數組的第1個位置即指向a[0]
i=0;[i=0]
i5成立開始循環:(*q)++;q指向的單元自加1,a數組[2,2,3,4,5]
i++;[i=1],i5成立繼續循環:(*q)++;q指向的單元自加1,a數組[3,2,3,4,5]
i++;[i=2],i5成立繼續循環:(*q)++;q指向的單元自加1,a數組[4,2,3,4,5]
i++;[i=3],i5成立繼續循環:(*q)++;q指向的單元自加1,a數組[5,2,3,4,5]
i++;[i=4],i5成立繼續循環:(*q)++;q指向的單元自加1,a數組[6,2,3,4,5]
i++;[i=5],i5不成立結束循環
輸出a數組
注意q指針的內容一直沒變,如果要變需要寫成q++;而不是(*q)++;