您好,登錄后才能下訂單哦!
本篇內容介紹了“C語言函數返回值與參數傳遞的形式是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
C語言的函數中必不可少的就是參數傳遞,可以采用傳值和傳指針兩種方式。
1.傳值的形式:只是將參數值的拷貝傳給函數,并非參數本體如:
int test(int x,int y) { x=2*y; return x; } int main(void) { int a=0,b=5; printf("%d,%d ",test(a,b),a); return 0; }
運行結果為:
10,0
即傳值方式只可以將實參傳遞給函數,不可以改變實參本身。
2.傳指針形式:直接傳給函數的是變量的地址。
如:
int a(int b,int *c) { int i=0; for(i=0;i<4;i++) c[i]=b*i; return 0; } int main(void) { int b=2,c[4],i; a(b,c); for(i=0;i<4;i++) printf("Data is -> %d ",c[i]); return 0; }
運行結果為:
Data is -> 0
Data is -> 2
Data is -> 4
Data is -> 6
由于被調函數在參數指針的作用域之內,此時可以直接改變變量的本體。
函數除了參數傳遞還有返回值,既可以返回變量值也可以返回地址。
1.返回變量
如:
int a(int b) { int i=5; return 5*b; } int main(void) { int b=2; printf("Data is -> %d ",a(b)); return 0; }
運行結果
Data is -> 10
2.返回地址
int *test(int b) { int i=0,buf[4]; for(i=0;i<4;i++) buf[i]=b*i; return buf; } int main(void) { int b=2; int *p; int i=0; p=test(b); for(i=0;i<4;i++) printf("%d ,%d ",p[i],test(b)); return 0; }
運行結果
0 ,1084896256
2 ,1084896256
4 ,1084896256
6 ,1084896256
另外不能返回局部變量地址。
int *buf() { int dad; double buf[3][2]; dad=sizeof(buf); return &dad;//error:由于dad是局部變量,函數結束后釋放。 }
“C語言函數返回值與參數傳遞的形式是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。