C語言-函數

1 函數調用中,地址傳遞爲什麼說形參與實參佔用同樣的存儲單元

因爲實參傳的是那段地址,形參接受的也是這段地址,相同的地址,當然就是相同的存儲單元,存儲單元就是地址的意思

2程序如何實現模塊化

在程序設計過程中大多數程序要比我們之前設計的程序複雜的多,傳統的設計方法是“自定向下,逐步求精”的過程。該過程就是將一個大的問題按照層次分解成多個方便解決的小問題,直至各個功能模塊,每個單獨的功能模塊可以單獨設計,最後將所有的功能模塊有機的結合成完整的程序

3 main() 的返回值返回到哪裏

返回給操作系統,表示程序正常退出。因爲return 語句通常寫在程序的最後,不管返回什麼值,只要到達這一步,說明程序已經運行完畢。而return的作用不僅在於返回一個值,還在於結束函數

4 爲什麼有的編譯器不支持void main()

有些編譯器允許這種形式,但是還沒有任何標準考慮接受它。標準的C語言要求main函數的返回值是int,該值是執行程序時,告知主調進程程序運行結果的一個渠道。由於大多數時候,程序運行結果可以由其它方式確定,比如程序打印信息,所以main的返回值變得不重要,於是大部分編譯器都支持無返回值類型的main,這時默認返回給主調進程0值

5 二維數組如何作爲函數參數使用

二維數組作形參有三種形式:

void func(int mat[][4]);傳遞一個二維數組,其中第二維的大小不能省略;
void func(int(*p)[4]); 這裏定義一個指針p,這個指針p指向的是一個數組,這個數組的長度是4,也可以這麼理解,p指向的是二維數組中的每一行
void func(int **p); 定義一個指針的指針,使用這種形式要注意一些問題,就是在計算每行元素的首地址時,以及具體某個元素位置的地址時候,需要進行強制類型轉換才行

6 怎樣讓函數返回數組?

C++中函數是不能直接返回一個數組的,但是數組就是指針,所以可以讓函數返回指針來實現。不能直接返回函數中定義的數組,會被釋放掉。

7回調函數有哪些具體應用?

使用回調函數實際上就是在調用某個函數時,將自己的一個函數(這個函數爲回調函數)

的地址作爲參數傳遞給那個函數。而那個函數在需要的時候,利用傳遞的地址調用回調函數。

8 有哪些變參函數?

典型的可變參數函數的例子有printf(),scanf()等

9 變參函數如何取參數?

C語言支持可變參數函數,即參數的個數可以是不定個,在函數定義的時候用(…)表示,比如我們常用的printf()等;printf函數的原型如下:

int printf(const char *format,...);

注意,採用這種形式定義的可變參數函數,至少需要一個普通的形參,比如上面代碼中的*format,後面的省略號是函數原型的一部分。

10 函數聲明放在主函數外和主函數內有什麼區別?

放在主函數外,從它的位置往下,所有的函數都能調用該函數;

而在主函數內,只有主函數能訪問該函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章