新聞中心
C語言用指針作函數(shù)參數(shù)
C語言中,函數(shù)參數(shù)只能傳值。與傳值對應(yīng)的是傳引用,C語言不支持函數(shù)參數(shù)傳引用,C++語言才支持。C++傳引用函數(shù):void foo(int& a) { a = 3; } 假如a = 2,執(zhí)行foo(a)后,a = 3。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了常寧免費建站歡迎大家使用!
fun(&b,a);中傳入a字符。*c=*c+1將c的值變?yōu)閎字符。主函數(shù)的值改變。第二個參數(shù)是值傳遞,所以在函數(shù)中d的值為B字符。但是并不影響主函數(shù)的值,所以主函數(shù)輸出a的值是A。b的值是b。
int b){ int tmp;tmp=*a;a=*b;b=tmp;} 但是給函數(shù)傳值時要注意,指針是指向地址的,所以參數(shù)要是地址,即需要給變量取地址。
如果使用指針作為參數(shù)就是地址傳遞,否則只是值傳遞。你可以看下下面的這個函數(shù):void modify(int a){ a++;} void main(){ int a=5;modify(a);printf(%d,a);} 這個程序的答案還是5。
C語言指針變量的賦值和做函數(shù)的參數(shù)
一般變量作為形參,是不能改變實參值的哦,要返回數(shù)據(jù)就用return;指針指向真實的地址,不重新分配內(nèi)存,所以調(diào)用函數(shù)后,如果函數(shù)里改變了指針指向的值,那這個數(shù)就真的變了。調(diào)用就是用函數(shù)名,還要傳送相應(yīng)的調(diào)用參數(shù)。
要改變一個變量的值,到主調(diào)函數(shù)中也生效,那就必須穿地址(傳指針), 否則不行。不過 并不是指針類型就可以,而必須是要修改類型的指針。
變量的指針就是變量的地址。存放變量地址的變量是指針變量。即在C語言中,允許用一個變量來存放指針,這種變量稱為指針變量。因此,一個指針變量的值就是某個變量的地址或稱為某變量的指針。
因為使用地址作參數(shù),那么傳參就是傳地址啊,當然要傳u_x即&x啦 另外,對指針來說,定義的時候加*是為了區(qū)別指針變量與非指針變量,如果函數(shù)定義中的int *a,int *b的兩個星號去掉,那就說明形參變量不是指針類型了。
C語言指針作為函數(shù)參數(shù)
C語言中,函數(shù)參數(shù)只能傳值。與傳值對應(yīng)的是傳引用,C語言不支持函數(shù)參數(shù)傳引用,C++語言才支持。C++傳引用函數(shù):void foo(int& a) { a = 3; } 假如a = 2,執(zhí)行foo(a)后,a = 3。
int b){ int tmp;tmp=*a;a=*b;b=tmp;} 但是給函數(shù)傳值時要注意,指針是指向地址的,所以參數(shù)要是地址,即需要給變量取地址。
一般變量作為形參,是不能改變實參值的哦,要返回數(shù)據(jù)就用return;指針指向真實的地址,不重新分配內(nèi)存,所以調(diào)用函數(shù)后,如果函數(shù)里改變了指針指向的值,那這個數(shù)就真的變了。調(diào)用就是用函數(shù)名,還要傳送相應(yīng)的調(diào)用參數(shù)。
fun(&b,a);中傳入a字符。*c=*c+1將c的值變?yōu)閎字符。主函數(shù)的值改變。第二個參數(shù)是值傳遞,所以在函數(shù)中d的值為B字符。但是并不影響主函數(shù)的值,所以主函數(shù)輸出a的值是A。b的值是b。
通過參數(shù)告訴函數(shù):參數(shù)指向的單元存放著你要的數(shù)據(jù)(供函數(shù)讀寫),處理完后也可以將結(jié)果放到那些單元(函數(shù)結(jié)束后供調(diào)用程序讀寫),這樣雙方都可以讀寫數(shù)據(jù)和結(jié)果,稱為雙向傳遞。
當前標題:c語言指針作為函數(shù)參數(shù)6 c語言指針作為參數(shù)傳遞
本文網(wǎng)址:http://fisionsoft.com.cn/article/deipsjo.html