日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言函数参数传递详解

發(fā)布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言函数参数传递详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.值傳遞和地址傳遞

? (1)值傳遞:即按“值(如數(shù)字10)”傳遞參數(shù),是將實參變量的值復制一個到臨時存儲單元中(該存儲單元會隨著調(diào)用的函數(shù)運行結(jié)束而釋放掉),如果在調(diào)用過程中改變了形參的值,不會影響實參變量本身,即實參變量保持調(diào)用前的值不變

?(2)地址傳遞:即按“地址(如0019FEDC)”傳遞參數(shù),把實參變量的地址傳送給被調(diào)用函數(shù),形參和實參共用內(nèi)存的同一地址。在被調(diào)用過程中,形參的值一旦改變,相應實參的值也跟著改變

注:值傳遞在函數(shù)調(diào)用過程中會為形參重新開辟空間,形參與實參分別占用不同的地址空間,而地址傳遞,形參和實參共用同一內(nèi)存地址

舉栗子:

①值傳遞(普通類型變量的參數(shù)傳遞)
void fun1(int a){
?? ?a=2;
?? ?printf("在fun1函數(shù)中,變量a值的地址是:%p\n",&a);
?? ?a=a+1;
}
void main(){
?? ?int n=1;
?? ?printf("在main函數(shù)中,變量n的地址是:%p\n",&n);
?? ?fun1(n);
?? ?printf("fun1函數(shù)中形參a加1之后,實參n的值是%d\n",n);//n的值任然不變還是1
}

運行結(jié)果

②地址傳遞(指針作為參數(shù))

void fun2(int *q){
?? ?printf("在fun2函數(shù)中q的值是(和m的地址,p的值一樣):%p\n",q);
?? ?*q=*q+5;
}

void main(){
?? ?int m=10;
?? ?int *p=&m;
?? ?printf("在main函數(shù)中,m值的地址:%p\n",&m);
?? ?printf("在main函數(shù)中,p指針的值(p所指向變量的地址):%p\n",p);
?? ?printf("在main函數(shù)中,p指針的地址(指針變量本身也要占存儲單元):%p\n",&p);
?? ?fun2(p);//傳的是p的值,該值是m的地址
?? ?printf("執(zhí)行fun2函數(shù)后,m的值是(由于形參和實參共用內(nèi)存的同一地址,形參改變實參也改變):%d\n",m);
}

注:當 “ * ” 有兩個作用 。作用一(定義指針變量):int *p;? ?作用二(取值):int m=10;? int p=&m;? printf(*p)//輸出10

運行結(jié)果

③數(shù)組名的參數(shù)傳遞

“數(shù)組名的值”和數(shù)組的地址都存儲了數(shù)組的首地址

void fun3(int arr[]){
?? ?for(int i=0;i<5;i++){
?? ??? ?printf("%d",arr[i]);
?? ?}
}
void fun4(int *arr){
?? ?for(int i=0;i<5;i++){
?? ??? ?printf("%d",arr[i]);
?? ?}
}

void main(){

?? ??? ?int arr[5]={1,3,5,7,9};
?? ??? ?int*r;
?? ??? ?r=arr;
?? ??? ?fun3(arr);//傳數(shù)組名
?? ??? ?printf("\n");
?? ??? ?fun4(r);//傳遞指針
?? ??? ?printf("\n");
?? ??? ?printf("數(shù)組名的值:%p\n",arr);
?? ??? ?printf("數(shù)組的地址值:%p\n",&arr);
}

運行結(jié)果

總結(jié)

以上是生活随笔為你收集整理的C语言函数参数传递详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。