C語言,函式引數傳遞方式是單向的,形參不能給實參賦值是什麼意思?自定義函式最後用return

2021-03-22 06:31:33 字數 1102 閱讀 6027

1樓:足球隊聯絡員

實參把值傳給形參以後就和形參切斷聯絡了,對形參操作後得到的是副本。c語言是嚴謹的,乙個位址對應唯一的引數,但同乙個引數可能有不同的位址 拿經典的swap交換函式舉例 如果你交換的不是指定位址的變數 只是普通變數 那麼他給你返回的結果就是你給的變數的副本的交換 而當交換物件變成指定位址的物件的時候 就有唯一性了 這是真正的交換

拿現實生活舉例 讓張三和李四交換他們的妻子 天啊你怎麼知道是哪個張三哪個李四?為了不影響其他的張三李四,只好新建乙個張三和李四的副本來交換了 這個就叫嚴謹 所以必須知道他們二人的明確地理位置 才能交換他們的妻子 實現真的交換

2樓:蒼老師的戀愛

哪個老師教你函式引數傳遞方

向為單向的?

如果引數如普通變數,並非指標的話,傳遞為單向,主調函式傳向被調函式如果引數為指標型別,則在被調函式中可以修改位址中的值,也就形成了雙向傳遞

自定義乙個函式最後return那是函式返回值,不是引數

3樓:匿名使用者

我覺得第一句話有點多餘,他說的是這個意思

void fun(int a);

int b;

void fun(b = a);

我覺得他大概是這個意思,不能用後面這種賦值。

c語言判斷題:在標準c語言中,函式引數傳遞是單向傳遞,即由實參傳遞給形參.

4樓:山水阿銳

值傳遞。

實參與形引數據傳遞有兩種方式:值傳遞與位址傳遞。版

位址傳遞的形式為 int &a=b;

也就是我權們所說的引用,但引用只有c++中有,所以c語言都是值傳遞的。

有些人有誤解:認為c語言的int *p=&a;不也是按位址傳遞嗎?其實不是這樣的。

深入理解值傳遞與位址傳遞就會發現:

值傳遞是:把實參的值傳給乙個變數(形參)。所以int *p=&a也是把a的位址值傳給了指標變數p

位址傳遞是:直接把位址傳進來,沒有賦給任何變數,這樣在函式體內對形參的操作也就是對實參地操作。有這種功能的也就是引用(&)了。

5樓:匿名使用者

函式傳遞的是實參的複製

c語言函式呼叫引數傳遞的是什麼,C語言函式呼叫引數傳遞的是什麼

c語言傳遞的是值而不是位址,這一點從vb轉過來的程式設計師一定要注意。否則不經意間就會犯錯誤。另外下層函式修改上層函式變數不是一種好習慣,容易引發錯誤。c語言中函式可以返回乙個函式值,如果你需要返回多個函式值可以用下面的形式 fun int a,int b main 如果按vb的習慣,fun int...

有關C語言函式的引數。。。

沒遇到過這類問題。不過顯示的時候一般都應該是字串的。數字不進行顯示,顯示即 列印!基本上都是字串。轉換的時候用顯示轉換。在c 中用 i 在c c 中也應該有類似的東西的。你找找看。你要把函式原型貼出來,才知道你的每個引數做什麼的,我簡單猜測是,引數2是需要顯示的字串,引數3是顯示的長度,引數1是可能...

C語言,不定引數的函式指標問題

很巧我現在正好也有實現這樣函式的需求,其實就是看了c語言可變引數函式的相關資料,你就差不多知道怎麼實現了。只不過其中有乙個很重要的大坑,只要邁過去就沒問題。我是試了半天才明白的 如果引數是char或float型別,這樣的引數放在可變引數部分的話,編譯器是會預設把它們的型別提公升為相應的 全 型別的 ...