程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ 函數的聲明與定義

C++ 函數的聲明與定義

編輯:C++入門知識

1、函數的聲明
    在C和C 的程序裡,完成一項工作的一種典型的方式就是調用一個函數去做那件事。定義函數是程序員刻畫怎樣完成某個操作的一種方式。一個函數只有先聲明後才能夠調用。

    在一個函數的生命中,需要給出函數的名字,這個函數返回值的類型,以及在調用這個函數的時候必須提供的參數的個數和參數類型。看如下聲明:
    void fun(x,y) ;//這種聲明是毫無意義的,因為參數類型未知。

2、函數的定義
    在程序中調用某個函數,首先必須在某個地方定義(僅僅定義一次)。一個函數的定義也就是給出了函數體的函數聲明。例如:
    extern  void swap(int * ,int *);  //聲明
    void swap(int *p, int *q)
    {
            int t = *p;
            *p = *q;
            *q = t;
    }
函數的定義和對它的所有聲明都必須描述了同樣的類型,由於參數名不作為類型的一部分,因此參數名字不必保持一致。

3、靜態變量
局部變量會在線程達到其定義的時候進行初始化。按照默認方式,這樣的事情發生在每次函數被調用的時候,且函數的每一個調用都有自己的一份局部變量的副本。但是,當局部變量被聲明為static時,它將只有唯一的一個靜態對象,對它的初始化只發生在線程第一次執行到它的定義時進行。

看下面的程序:
#include<iostream>
using namespace std;
void showstatic(int a)
{
    while(a--)
    {
        static int n = 0;  //初始化一次
        int x = 0;               //在每個showstatic()調用時初始化a次
        cout<< "n == "<<n <<",x == "<<x <<endl;
    }
}

int main()
{
    showstatic(3);
}

此程序的輸出為:
n == 0,x == 0
n == 1,x == 0
n == 2,x == 0

從上面的輸出可以看出,static int n 只有在函數第一次調用時被初始化為0,而局部變量x在函數每次執行到int x時都被初始化為0。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved