c語言函式問題

2022-08-02 16:00:35 字數 937 閱讀 9834

1樓:匿名使用者

void swap2(int c0,int c1)

這個函式對嗎?我怎麼沒看到**來的陣列

2樓:匿名使用者

第一種方法是用陣列作為實參傳入函式,實際上這是將陣列的地址傳入函式,通過地址,函式可以直接修改資料的值,而不用返回值之類的東西。

第二種是將資料值傳入函式,這種引數時區域性變數,無論它在函式中的值怎樣變化,都不會影響它在主函式中的值。設計到指標的問題,如果你沒學,可以自己看一下。這種問題都是應該自己看書解決的。

3樓:冰至誠

你應該還沒有看過指標吧,陣列名作為形參時傳遞的是地址,函式內通過訪問地址可以改變實參的值,這與呼叫的函式是否有返回值無關。詳細的你可以看書的指標部分。

4樓:匿名使用者

void swapl(int c)

和void沒關係,交換效果,不需要返回值,您這個是傳遞一個地址進去,是可以實現交換的。 a 是的首地址

5樓:匿名使用者

不是跟返回值有關,還是跟傳的引數有關。

swap1(a); 它是傳一個地址過去的。

swap2(b[0],b[1]);它是傳值過去的。

傳值與傳地址,是不同的。傳值過到函式中,函式中的值怎樣變化,都不會影響它在主函式中的值。而傳地址,就與傳值相反了。

6樓:匿名使用者

你呼叫void swapl(int c)

時是把a這個陣列做為引數傳遞給函式的,陣列是引用型的,所以在swapl中的c就指向了a,所以在互換c的兩個數時,就是把a中的兩個數互換了。

而void swap2(int c0,int c1)是把b[0],b[1]這兩個數做為引數

不是引用型的

因此在swap2中的操作不影響b的內容,因此輸出的a為反序,b為正序

C語言函式問題

不是每個函式可以單獨編譯,而是以檔案為單位進行編譯,如果你的檔案裡只包含了一個函式,當然就只有這個函式被編譯了,執行的時候必須是從main 函式開始執行,相當告訴了計算機這一團毛線的頭在哪兒,然後整個線條就可以理順了。在win32平臺下,單獨編譯檔案生成的檔案根據呼叫的形式不同稱為動態庫或者靜態庫,...

c語言外部函式宣告與否問題,C語言函式宣告是要在主函式內部還是外部啊?

絕對是會的,每一個函式都有入口,作業系統 os 需要計算地址並且定址,然後每個子函式都有一個返回值,執行完os仍然有計算和定址,然後返回main,不過這種時間花費很小,並不比一次inta b c的運算多多少,因此不會犧牲很多時間,另外,這種微小時間的付出換來的確實程式的模組化和有序化,顯然是非常值得...

C語言的scanf 函式問題

scanf的意思就是接受的意思啊。你輸入了換行相當於在此接受啊。在printf函式中的 代表換行符,轉義字元只在printf中有意義,在scanf函式中無意義。像樓主這種狀況應該輸入 一個數 再按回車鍵。你理解錯誤了,在c語言裡面 printf 函式是格式化輸出函式。scanf 函式是格式化輸入函式...