c語言中,形參可以是常量,變數或表示式,這句話為什麼是錯的

2022-03-03 08:20:53 字數 3216 閱讀 8414

1樓:匿名使用者

說好的是形參。不是實參。實參就是對的。

我覺得樓主可能沒有了解什麼是形參。當然。這個可以不用去理解也不影響**質量的。

但是。理論就是這麼說的。最好看懂。

形參只能是變數,在被定義的函式中,必須指定形參的型別。

沒有確定的值

形參變數在未出現函式呼叫時,並不佔用記憶體,只在呼叫時才佔用。呼叫結束後,將釋放記憶體。

形參的特點就是黑體字那幾個了

你就順便理解一下實參吧

實參可以是常量、變數、表示式、函式等

無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。

開闢記憶體儲存資料

平時c語言,直接int一個變數。不賦值。一樣是有值的。那是記憶體在上次使用時候留下來的垃圾值。所以是個不確定的值。

希望我的回答對你有幫助

2樓:house黃信

形參只能是變數,在被定義的函式中,必須指定形參的型別。

沒有確定的值

形參變數在未出現函式呼叫時,並不佔用記憶體,只在呼叫時才佔用。呼叫結束後,將釋放記憶體。

形參的特點就是黑體字那幾個了

你就順便理解一下實參吧

實參可以是常量、變數、表示式、函式等

無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。

開闢記憶體儲存資料

在c語言中形參必須是常量 這句話對嗎?

3樓:匿名使用者

錯誤。c語言規定,形參可以是常量、變數或表示式,但要求形參必須有確定的值,並且形參必須與傳值給它的實參的型別相一致。

4樓:寒寒家

不對,形參當然可以是變數。

僅僅在為了保證引數在函式內不被修改的情況下,才把形參限制為常量。

c語言中的實參可以是任意型別的嗎?形參可以是常量、變數或表示式嗎?

5樓:莫道無情

實參可以是常量、變數、表示式、函式等任意型別,形參只能是變數,在被定義的函式中,必須指定形參的型別。

形式引數(形參):定義函式名和函式體時需要用的引數,目的是用來接收呼叫該函式時傳遞的引數。

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

通俗的來講,形參就像物理計算中的公式中的符號,比如ω,a,v等,而實參就是在計算中的實際的數值。呼叫過程就是實現形參與實參的結合,把實參的值通過呼叫傳遞給形參,相當於把具體的值代入公式進行計算。

6樓:一超獨大

1)實參可以是任意型別的資料。

2)形參可以是變數,或預設常量,不可以是表示式。

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

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

c語言中形參可以是變數,常量,表示式?

7樓:栁児

應該是實參吧

-------------

c語言中 實參 可以是變數,常量,表示式。

其實,變數和常量也是屬於表示式的範疇的。

8樓:匿名使用者

錯,形參不可以是常量,確定以及肯定

c語言規定,形參可以使常量、變數或表示式 對不對?

9樓:匿名使用者

不對。沒有這樣的說法,你明白什麼是形參什麼是實參嗎?

c語言說形參不能改變實參的值,為什麼這個賦值語句可以

10樓:匿名使用者

因為是在傳地址,值傳遞時候就不能改變實慘值了

11樓:匿名使用者

cpystr函式中的形參是字元指標,而字元指標並沒有改變,只是字元指標指向的記憶體空間的值發生改變。

12樓:

因為你的引數傳遞的是指標,那麼這個引數就是實參 不是你所說的形參。

13樓:匿名使用者

它改變的時*p1,而不是p1自己。 *p1和p1不是一個東西

14樓:

你這個引數用的都是地址(指標)在傳值,當然可以。首先p2指的是b的首地址,然後傳入的兩個引數都是指標,指向的是地址,最後將p1指向的地址裡的值依次賦給p2指向的地址裡的值,所以最終b就有了新值china;

你看看這個,獲取可以幫你理解這個問題:

#include "stdio.h"

void cpystr(char p1,char p2)void main()

15樓:匿名使用者

說的是普通傳參、、你這傳的是指標當然 能改變 了

16樓:

由程式輸出可見:形引數組array與實引數組a佔用的是同一個空間!

17樓:匿名使用者

形參和實參的區別

形參出現在函式定義中,在整個函式體內都可以使用, 離開該函式則不能使用。

實參出現在主調函式中,進入被調函式後,實參變數也不能使用。

形參和實參的功能是作資料傳送。發生函式呼叫時, 主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。

1.形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時, 即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。 函式呼叫結束返回主調函式後則不能再使用該形參變數。

2.實參可以是常量、變數、表示式、函式等, 無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。

3.實參和形參在數量上,型別上,順序上應嚴格一致, 否則會發生「型別不匹配」的錯誤。

4.函式呼叫中發生的資料傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

5.當形參和實參不是指標型別時,在該函式執行時,形參和實參是不同的變數,他們在記憶體中位於不同的位置,形參將實參的內容複製一份,在該函式執行結束的時候形參被釋放,而實參內容不會改變。

C語言中,形參的預設儲存類別為A auto B static C register D extern

c。在函式內部或複合語句內定義變數時,如果沒有指定的儲存型別或使用了auto說明符,系統就認為所定義的變數具有自動類別。形參即函式的自變數,其初值 於函式的呼叫。只有在程式執行過程中呼叫了函式,形參才有可能得到具體的值,並參與運算求得函式值。形參表相當於變數說明,但應特別注意 此處只能使用型別識別符...

C語言中的只讀變數與常量的具體區別在哪兒 都是存在資料區裡面的嘛?有什麼具體區別

巨集定義的作用是字串的替換,不是在編譯後產生的,而是預編譯就已經替換了,例如你說的a i 如果i是巨集 一般沒有單字母小寫的巨集 那麼i會在編譯之前就被替換成相應的字串的。巨集不是變數,只是字串替換的作用。但是const就不一樣了雖然是常量,但是是在編譯後處理的。所以編譯之前不能識別其值。因為編譯之...

C語言system 函式裡的引數可以是變數嗎

應該使用sprintf先格式化到一個字串陣列中,然後傳入system。比如 includeint main c語言怎麼在system 中新增變數?include include int main void scanf s buf strcat arr,buf printf arr s n arr s...