一維數(shù)組的元素作為函數(shù)實參,與同類型的簡單變差指量作為實參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實參
創(chuàng)新互聯(lián)是一家專業(yè)提供云浮企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、做網(wǎng)站、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為云浮眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
數(shù)組名代表著整個數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實參,傳遞的是整個數(shù)組,即形參數(shù)組和實參數(shù)組完全相同,是存放在同一存儲空間的同一個數(shù)組。這樣形參數(shù)組
修改時,實參數(shù)組也同時被修改了。形參數(shù)組的元素個數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個數(shù)組的地址,修改猜慶此了函數(shù)形參數(shù)組元素的值,穗迅會影響到外面的實參數(shù)組
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
輸出結(jié)果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
你這是
參數(shù)傳遞
進去的其實是數(shù)組的地址,在函數(shù)內(nèi)部修塵慶改了以后,數(shù)組的內(nèi)容就已經(jīng)真正前兆的修改了,所以函數(shù)返回以后,繼續(xù)訪問這個數(shù)組慧兄租,得到的數(shù)據(jù)就是修改以后的。
比如:
int array[12][12];
copy_arcs(arrar)
在訪問array就是修改后的數(shù)據(jù)了
經(jīng)??吹紺語言的main函數(shù)定義為:
int main(int argc, char *argv[]),但是在函數(shù)毀沖體中經(jīng)常是根本不用main函數(shù)中的這兩個參數(shù),這兩個參數(shù)用于纖和殲在運行程序時,從外部給程序傳遞參數(shù),其中argc中保存了參數(shù)的個數(shù),argv中分別保存了各個參數(shù).
例如一個程序的main()函數(shù)頭部形如int main(int argc, char *argv[]),編譯鏈接后生成的可執(zhí)行文件名為a.exe,那么請注意下面的調(diào)用:
a.exe abc def
在上面的命令行中棚局,a.exe是要運行的程序名稱,后面的abc和def就是傳入程序的兩個參數(shù),這兩個參數(shù)就通過argc和argv傳入程序,注意這些參數(shù)都是字符串。
通過上面的調(diào)用,在這個程序中,argc=3,a.exe是第一個參數(shù),這個字符串將保存在argv[0]中,abc和def分別是第二和第三個參數(shù),它們分別被保存在argv[1]和argv[2]中
如果是諸如函數(shù)禪辯聲明int fun(int b[]),這個是傳的地址,如果fun內(nèi)部有賦值操作,那么會改變數(shù)組b的元素的值
如果是執(zhí)行語句fun(b[i]);那么傳的就是b[i]這個值,執(zhí)行完fun后,b[i]的值不會變
a是一個指向指針的指針,a里面的內(nèi)容是另一個指針p的地址,那么*a就是p的地址,**a就是*p。
同理,b的內(nèi)容賀激缺是另一個指針q的地址,*b就是q的地址,**b就是*q
t = *a, 那么t的內(nèi)容就是p的地址,
*a = *b, a里面的內(nèi)容變成了q的地址,即*a是q的地址,**a就是*q
*b = t, b里面的內(nèi)容變成了p的地址,即*b是p的地址,**b就是*p
這三句,將**a的值和**b的值互換了,是對指針的操作。
傳值方式:向函數(shù)傳遞參數(shù)時,先復(fù)制一份參數(shù),然后才將復(fù)制品傳給參數(shù)。函數(shù)中所有對參數(shù)的操作,就只是在使用復(fù)制品。不會改變傳遞前的參數(shù)本身。
傳址方式:將地址傳送給鉛哪函數(shù),函數(shù)對該地址的內(nèi)容操作,相當(dāng)于對實參本身的操作
分享標(biāo)題:c語言入?yún)⒑瘮?shù) c語言入?yún)⒑瘮?shù)怎么寫
網(wǎng)頁路徑:http://chinadenli.net/article46/ddpgihg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站收錄、建站公司、、小程序開發(fā)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)