C++筆記--函式

Kobe10發表於2016-05-25
  • 函式的定義和宣告
    •   函式的宣告和定義都必須描述相同的型別,但是宣告可以不寫引數名,定義則必須寫引數名,但是他們的引數名字可以不同。
    •   一個區域性變數被宣告為static,那麼這個區域性變數將只會被初始化一次,而其他的區域性變數則隨情況而定進行初始化
    •  1 #include<iostream>
       2 using namespace std;
       3 int f(int );
       4 int f(int a){
       5     while(a--){
       6         static int n=0;//這個靜態區域性變數只能被修改一次
       7         int x=0;//這個區域性變數一直是在被修改
       8 
       9         cout<<"n=="<<n++<<",x=="<<x++<<endl;
      10     }
      11 }
      12 int main(){
      13     f(2);
      14     f(3);
      15 }
  • 函式引數
    •   陣列引數:不會也不能按值傳遞,T[]型別的陣列傳遞時會被轉換成T*。
    •   多維陣列作為引數:可以利用指標的陣列代替。(實際就是指向陣列的指標)
  • 預設引數不確定數目的引數 1.如果函式中出現不確定數目的引數,就用。。。表示
    •   預設引數的型別將在函式宣告時檢查,預設引數一般是被放在最後的,它的後面如果出現非預設的引數,就會報錯
    •   `int a(int a,int b=0,int c);//這個是錯誤的`。
  • 不確定的引數就用。。。表示
  • 指向函式的指標
    •   用函式指標變數呼叫函式:可以用一個指標變數指向函式,然後呼叫這個指標變數去呼叫此函式
      •     
        #include <stdio.h>
        #include <stdlib.h>
        
         int main()
        {
            int max(int,int);
            int (*p)(int,int);//定義P為一個指向函式的指標變數,如果*p沒有括號就不是指標變數了
            int a,b,c;
            p = max;//p指向max函式的開頭
            scanf("%d,%d",&a,&b);
            c = (*p)(a,b);
            printf("a=%d,b=%d,max=%d\n",a,b,c);
            return 0;
        }
        
        int max(int x,int y)
        {
            int z;
            if(x>y) z = x;
            else z = y;
            return(z);
        }
    • (1) 指向函式的指標變數的一般定義形式為:

      資料型別 (*指標變數名)(函式引數列表)

        這裡資料型別就是函式返回值的型別

  • 總結
    •   

相關文章