為什麼不能定義 C 話語中函式定義的形式引數變數?

發布 科技 2024-07-12
9個回答
  1. 匿名使用者2024-01-30

    這意味著指定引數的型別,該引數是不確定的,並且是一種約定。

    如果變數屬於這種型別,則可以將其傳遞到函式中,該函式也稱為引數(實際變數)。

  2. 匿名使用者2024-01-29

    用資料檔案寫下來:

    #include

    file *fp;

    void main()

    int n=0;

    if ( fp = fopen("","r")) == null ){

    printf("can not open "); exit(0);

    fscanf(fp,"%d",&n) ;

    fclose(fp);

    printf("n=%d",n);

    if ( fp = fopen("","w")) == null ){

    printf("can not open "); exit(0);

    fprintf(fp,"%d",n+1);

    fclose(fp);

  3. 匿名使用者2024-01-28

    引數可以是任何型別,如常量、變數、表示式、函式等,引數只能是變數。

    形式引數(form parameters):需要用於定義函式名稱和函式體的引數,用於接收呼叫函式時傳遞的引數。

    實際引數 (Argument):傳遞給被呼叫函式的值。

    通俗地說,引數就像物理計算公式中的符號,如、a、v等,而實際引數是計算中的實際值。 呼叫過程是實現形式與實數引數的結合,通過呼叫將引數的值傳遞給形式引數,相當於將具體值代入公式中進行計算。

  4. 匿名使用者2024-01-27

    是的。 在函式中定義的變數稱為區域性變數。

    區域性變數的作用域,即有用範圍,從定義的位置開始,以大括號結束。

    例如 int func()。

    j 所在的大括號結束,j 的作用域結束。

    some codes

    函式結束,i 的作用域結束。

  5. 匿名使用者2024-01-26

    通常,是的,但是當呼叫函式時,它的壽命可能會更長一些。

  6. 匿名使用者2024-01-25

    是的。 在函式體中定義的變數,作用域在函式體內。

    在檔案中定義的全域性變數,作用域為整個檔案。

    靜態定義的內部全域性變數只能在檔案內部訪問,沒有靜態定義的變數可以在其他檔案中使用 extern 訪問。

  7. 匿名使用者2024-01-24

    1)引數可以是任何型別的資料。

    2) 引數可以是變數,也可以是預設常量,而不是表示式。

    如果是預設常量,則只能在引數列表的末尾定義。 例如,int func(int a, int b=0) 是正確的。

    int func(int a=0, int b) 是錯誤的。

  8. 匿名使用者2024-01-23

    不需要一次宣告或定義所有變數,只需在使用變數之前定義乙個變數即可。 定義變數樣式的利弊如下:

    1.變數在函式開頭定義:易於修改。

    3.變數定義在塊語句的開頭:一些臨時變數放在語句塊的開頭,可以在函式的開頭定義,使用後釋放空間,可以這樣做,但不要無緣無故新增大括號,以改善**的結構。

    一般來說,為了實現最大的跨平台相容性,它仍然在函式的開頭定義。 因為 C89 規定所有區域性變數都宣告在塊的開頭,然後再進行任何執行語句。

    如下**:

    報錯訊息:錯誤 c2065:'salary' :undeclared identifier。

    在 C99 和 C++ 中,沒有這樣的限制,即變數可以在首次使用之前在塊中的任何位置宣告。

  9. 匿名使用者2024-01-22

    靜態變數,僅初始化一次。 所以這裡 b 只定義了一次。

    所以 1 將被占用,但很少。 它與全域性變數定義幾乎相同。2 不,因為沒有多個定義,只有乙個定義。

    3 除了生命週期之外,最大的區別是範圍。

    區域性變數只能在函式內訪問,而全域性變數可以被任何人訪問,這很容易導致混淆,尤其是在多執行緒的情況下。

    另外,非靜態區域性變數在函式退出後被釋放,如果所有變數都定義為全域性變數,顯然是浪費記憶體。

相關回答
14個回答2024-07-12

你能說清楚嗎,我不知道你的意思。 是否要在 main 函式中呼叫乙個函式,然後不知道如何定義被呼叫的函式? 如果是這樣的話,我可以告訴你。 >>>More

12個回答2024-07-12

宣告應該放在呼叫的前面,這樣編譯器就知道函式被呼叫的時候是什麼樣子的,如果定義放在呼叫之前,就不能宣告,如果定義放在呼叫之後,沒有宣告,呼叫時會報錯, 並且宣告但不定義編譯好,操作會出錯,例如。 >>>More

11個回答2024-07-12

這不是乙個靜態類,只是乙個靜態建構函式,如下所示。 >>>More

5個回答2024-07-12

方法過載也可以應用於 c 中的建構函式。 C 具有預設建構函式,您還可以使用引數定義建構函式。 建構函式必須與類同名,並且不能具有返回值。 因此,C 建構函式過載等價於不同數量的引數方法過載。 >>>More

16個回答2024-07-12

你看到了嗎?

雖然我不知道你在看什麼,但這種設定通常是為了滿足便攜性需求而設計的。 為了能夠在不更改**的情況下在各種機器上編譯應用程式,新增了這樣的中級設定。 >>>More