函數調用的方式

  • 2017-08-18
  • 75

西安網站建設 函數調用的方式

在C語言中,可以用以下幾種方式調用函數:

函數表達式:函數作為表達式中的一項出現在表達式中,以函數返回值參與表達式的運算。這種方式要求函數是有返回值的。例如:z=max(x,y)是一個賦值表達式,把max的返回值賦予變量z。

函數語句:函數調用的一般形式加上分號即構成函數語句。例如:    printf ("%d",a);scanf ("%d",&b);都是以函數語句的方式調用函數。

函數實參:函數作為另一個函數調用的實際參數出現。這種情況是把該函數的返回值作為實參進行傳送,因此要求該函數必須是有返回值的。例如:    printf("%d",max(x,y));    即是把max調用的返回值又作為printf函數的實參來使用的。在函數調用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。對此,各係統的規定不一定相同。介紹printf 函數時已提到過,這裏從函數調用的角度再強調一下。

【例8.3】

main()

{

    int i=8;

    printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);

}

如按照從右至左的順序求值。運行結果應為:

    8

    7

    7

    8

如對printf語句中的++i,--i,i++,i--從左至右求值,結果應為:

    9

    8

    8

    9

應特別注意的是,無論是從左至右求值, 還是自右至左求值,其輸出順序都是不變的, 即輸出順序總是和實參表中實參的順序相同。由於Turbo C現定是自右至左求值,所以結果為8,7,7,8。上述問題如還不理解,上機一試就明白了。西安網站建設