1、數(shù)組可定義為全局變量,函數(shù)直接調(diào)用。數(shù)組可定義為局部變量,再通過參數(shù)傳遞到函數(shù)中調(diào)用(實(shí)參傳數(shù)組名,表示數(shù)組首地址,也可通過指針或數(shù)組名+數(shù)字來傳遞數(shù)組局部地址)。
創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站營銷推廣,域名與空間,網(wǎng)絡(luò)空間,成都網(wǎng)站托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,請聯(lián)系創(chuàng)新互聯(lián)。
2、首先這樣的作法是沒有意義的,因?yàn)楫?dāng)函數(shù)返回之后,函數(shù)原始空間中的數(shù)組和變量是臨時的,都會被自動清除和釋放。如果需要通過函數(shù)將改變的結(jié)果傳回,可以使用指針。
3、在子函數(shù)申請二維數(shù)組,主函數(shù)使用,可以用動態(tài)申請。方法不止一種,我這里用指針的指針實(shí)現(xiàn)二維數(shù)組。二維數(shù)組除了行列,本身地址也是連續(xù)的,從第一行第一列的元素地址++,可以取出所有元素。
4、每調(diào)用一次分函數(shù),只要運(yùn)行完畢后就會回到調(diào)用分函數(shù)的地方繼續(xù)往后執(zhí)行。C語言主要靠函數(shù)調(diào)用和return在函數(shù)之間切換,很難做到在多層調(diào)用中直接返回主函數(shù)。雖然goto語句可以無條件跳轉(zhuǎn),但是必須在同一個函數(shù)中使用。
5、另一種方法,把變量都轉(zhuǎn)換成一種類型傳遞。這里用union共用體類型就比較適合。還方便擴(kuò)展,如果想添加其他類型還可以在union里添加。我這里代碼就用第二種方法寫。
不能夠返回整個數(shù)組,只能返回?cái)?shù)組中的某個值。如果數(shù)組在函數(shù)內(nèi)部定義,也不能直接返回?cái)?shù)組名(臨時變量在函數(shù)結(jié)束時會釋放)。一般寫程序不會把數(shù)組作為返回值返回,想要返回整個數(shù)組,可以用指針來實(shí)現(xiàn)。
在C語言中,無法直接返回一個數(shù)組,但是可以通過返回對應(yīng)類型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個函數(shù),申請一定長度的整型動態(tài)數(shù)組,其長度用參數(shù)傳入,并將結(jié)果返回。
可以把該數(shù)組聲明為全局的,這樣在其他子函數(shù)中可以很方便的訪問了。
通過全局變量來傳遞數(shù)組。聲明全局變量用于存儲子函數(shù)中的數(shù)組,此時可以在全局變量作用域中讀取調(diào)用子函數(shù)的數(shù)組。
1、不能夠返回整個數(shù)組,只能返回?cái)?shù)組中的某個值。如果數(shù)組在函數(shù)內(nèi)部定義,也不能直接返回?cái)?shù)組名(臨時變量在函數(shù)結(jié)束時會釋放)。一般寫程序不會把數(shù)組作為返回值返回,想要返回整個數(shù)組,可以用指針來實(shí)現(xiàn)。
2、行數(shù) = sizeof(array)/sizeof(array[0]);列數(shù) = sizeof(array[0])/sizeof(array[0][0]);你也可以在函數(shù)形參里加入行列值,然后主函數(shù)調(diào)用子函數(shù)的時候,把行列數(shù)做為參數(shù)傳過去。
3、函數(shù)調(diào)用不能這么用,第36行。C標(biāo)準(zhǔn)里面返回值是不能直接返回一個數(shù)組的,只能返回?cái)?shù)組的首地址。輸出學(xué)生成績和每科成績那個函數(shù),你可以定義一個全局變量數(shù)組,還有求平均值最好用float 或者double,用int會造成精度流失。
4、C語言編程的過程中,不可避免的會碰到二維或二維以上的數(shù)組作為函數(shù)的形參的情況,在以前的編程過程中,習(xí)慣了動態(tài)數(shù)組的應(yīng)用,很是使用直接定義高維數(shù)組。
當(dāng)然可以,調(diào)用庫函數(shù)和自定義函數(shù)的要求(語法要求鏈接要求等)都是一樣的。調(diào)用庫函數(shù)要鏈接庫(一般自動鏈接標(biāo)準(zhǔn)庫),調(diào)用自定義函數(shù),要鏈接它的OBJ文件。或C直接更好。
可以調(diào)用多個函數(shù),沒有限制,除了main函數(shù)不可以調(diào)用。還有就是,它自己也可以調(diào)用自己。也可以調(diào)用一些庫函數(shù),比如“max(int,int)”,總之,除了main不可以,其他的都可以。不過在調(diào)用之前記得要聲明。
可以的,前提是,在使用一個函數(shù)之前必須先對他進(jìn)行聲明://void B();聲明B函數(shù)的存在。void A(){B();//非法,程序執(zhí)行到此時并不知道B函數(shù)的存在。
//void B();聲明B函數(shù)的存在。void A(){B();//非法,程序執(zhí)行到此時并不知道B函數(shù)的存在。
標(biāo)準(zhǔn)C語言只允許函數(shù)的嵌套聲明,而不能進(jìn)行嵌套定義。
當(dāng)編譯器編譯時,它逐行編譯。但它首先找到主函數(shù),當(dāng)主函數(shù)被編譯時,它意味著程序被編譯。如果主函數(shù)位于其他函數(shù)之前,則在主函數(shù)中調(diào)用的子函數(shù)(自定義函數(shù))將在主函數(shù)之前聲明其存在。
如果在子函數(shù)的形參中固定了最后一個維度的話,就沒有任何靈活性了。
請問你的二元數(shù)組時怎么傳遞給這個函數(shù)的 如果是全局變量,調(diào)用結(jié)束后,賦得值就還在。
二維數(shù)組賦值通常情況下用2個循環(huán)來做。用了四個循環(huán),一般前兩個循環(huán)是用來輸入數(shù)據(jù),另外兩個循環(huán)是用來輸出數(shù)據(jù)。
在子函數(shù)申請二維數(shù)組,主函數(shù)使用,可以用動態(tài)申請。方法不止一種,我這里用指針的指針實(shí)現(xiàn)二維數(shù)組。二維數(shù)組除了行列,本身地址也是連續(xù)的,從第一行第一列的元素地址++,可以取出所有元素。