十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
1、但是,數(shù)組做形參時(shí),C語(yǔ)言支持中括號(hào)里面寫(xiě)入數(shù)字,如array[0]、array[1]或array[10]等,但它們都是一樣的,作用與寫(xiě)成array[]完全相同。
創(chuàng)新互聯(lián)主營(yíng)青岡網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開(kāi)發(fā),青岡h5微信平臺(tái)小程序開(kāi)發(fā)搭建,青岡網(wǎng)站營(yíng)銷(xiāo)推廣歡迎青岡等地區(qū)企業(yè)咨詢
2、其實(shí),這種組合的根本區(qū)別是不存在的。C語(yǔ)言的數(shù)組其實(shí)是用指針來(lái)定義的。其實(shí)你有一個(gè)概念性的錯(cuò)誤,函數(shù)中的形式參數(shù)是不會(huì)有數(shù)組的,雖說(shuō)寫(xiě)成int array[],但其實(shí)它是個(gè)指針變量,不是數(shù)組。
3、{ printf(%d,c[i]);} } 主要是通過(guò)指針把數(shù)組,例如main里面的a的地址傳入arry函數(shù),然后在arry函數(shù)中用一個(gè)兼容類(lèi)型的指針接收地址,然后就可以再這個(gè)指針下的地址操作地址上面的數(shù)據(jù)了。
4、也就是說(shuō),在函數(shù)的形參列表里指定數(shù)組的成員個(gè)數(shù)是沒(méi)有意義的,所以,你傳入的實(shí)參究竟是比10多還是比10少對(duì)于調(diào)用函數(shù)而言都是合法的。
5、所以在baz中,形參array就是實(shí)參main中的a,一切a所有的特性都是array的特性,所以sizeof(array) == sizeof(a),而且&baz:array == main:a(地址相同)。
6、傳址:形參是實(shí)參的一個(gè)地址,在被調(diào)函數(shù)中對(duì)形參的改變會(huì)影響實(shí)參的值。在c語(yǔ)言中,簡(jiǎn)單變量默認(rèn)是傳值,而數(shù)組默認(rèn)是傳址。所以出現(xiàn)你所說(shuō)的一系列怪現(xiàn)象。好好想一下,若還不明白請(qǐng)留言。
1、函數(shù)原型 type fun (type (name*)[size])\x0d\x0a \x0d\x0atype是你要定義的類(lèi)型,fun是函數(shù)名,name是在函數(shù)中二維數(shù)組的名字,\x0d\x0asize是二維數(shù)組第2維的長(zhǎng)度。
2、C語(yǔ)言如果給函數(shù)傳遞二維數(shù)組作為參數(shù) 先看一個(gè)傳遞二維數(shù)組的例子:編譯:程序看著沒(méi)有任何問(wèn)題,但是編譯器通不過(guò),報(bào)錯(cuò)在處理二維數(shù)組參數(shù)a的時(shí)候,類(lèi)型不兼容。
3、不可能達(dá)到目的。因?yàn)镃語(yǔ)言中沒(méi)有引用這類(lèi)型,C++才有。另,C/C++都不支持傳遞數(shù)組,只能傳遞數(shù)組的首元素或行指針,所以即使是C++,也只能傳遞數(shù)組指針的引用,而不可能傳遞數(shù)組的引用,因?yàn)閿?shù)組沒(méi)有引用。
要將數(shù)組長(zhǎng)度作為一個(gè)參數(shù)傳給average函數(shù),不能在average函數(shù)內(nèi)部通過(guò)int arrLen = sizeof(a) / 4;來(lái)計(jì)算數(shù)組長(zhǎng)度。
C語(yǔ)言中,數(shù)組名作為函數(shù)參數(shù),屬于數(shù)組參數(shù)傳遞。在VB0中,允許使用數(shù)組作為實(shí)參傳遞到子過(guò)程的形參中,數(shù)組傳遞必須采用地址傳遞的方式來(lái)傳遞參數(shù)。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因?yàn)閿?shù)組名代表這個(gè)數(shù)組的首地址,不過(guò)是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標(biāo)時(shí),就是找到這個(gè)數(shù)組第i號(hào)元素的地址進(jìn)行修改的。所以是第于是地址傳遞。
C語(yǔ)言中數(shù)組名作為實(shí)參傳給被調(diào)用的函數(shù)時(shí),形參獲得的是數(shù)組的起始地址。還是用例子說(shuō)話吧。
數(shù)組名作為參數(shù),在參數(shù)的傳遞中 會(huì)退化為指針,也就是說(shuō) 數(shù)組名作為參數(shù),傳遞的是數(shù)組的首地址。
這個(gè)選擇題的答案是C,即當(dāng)數(shù)組名作為函數(shù)參數(shù)時(shí),傳遞給被調(diào)函數(shù)的是數(shù)組的第一個(gè)元素(下標(biāo)為0)的地址。