結果 (a或b)將返回給變量z.最后由主函數輸出z的值。
函數調用的一般形式前面已經說過,在程序中是通過對函數的調用來執行函數體的,其過程與其它語言的子程序調用相似。C語言中, 函數調用的一般形式為:
函數名(實際參數表) 對無參函數調用時則無實際參數表。 實際參數表中的參數可以是常數,變量或其它構造類型數據及表達式。 各實參之間用逗號分隔。'Next of Page在C語言中,可以用以下幾種方式調用函數:
1.函數表達式
函數作表達式中的一項出現在表達式中,以函數返回值參與表達式的運算。這種方式要求函數是有返回值的。例如: z=max(x,y)是一個賦值表達式,把max的返回值賦予變量z.'Next of Page
2.函數語句
函數調用的一般形式加上分號即構成函數語句。例如: printf ("%D",a);scanf ("%d",&b);都是以函數語句的方式調用函數。
3.函數實參
函數作為另一個函數調用的實際參數出現。 這種情況是把該函數的返回值作為實參進行傳送,因此要求該函數必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調用的返回值又作為printf函數的實參來使用的。在函數調用中還應該注意的一個問題是求值順序的問題。 所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。 對此, 各系統的規定不一定相同。在3.1.3節介紹printf 函數時已提
到過,這里從函數調用的角度再強調一下。 看例5.2程序。
void main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
如按照從右至左的順序求值。例5.2的運行結果應為:
8
7
7
8
如對printf語句中的++i,--i,i++,i--從左至右求值,結果應為:
9
8
8
9
應特別注意的是,無論是從左至右求值, 還是自右至左求值,其輸出順序都是不變的, 即輸出順序總是和實參表中實參的順序相同。由于Turbo C現定是自右至左求值,所以結果為8,7,7,8。上述問題如還不理解,上機一試就明白了。函數的參數和函數的值。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |