新聞中心
一道c語(yǔ)言解答函數(shù)返回多個(gè)值,用全局變量,傳址參數(shù),和返回結(jié)構(gòu)體變量,他們之間的優(yōu)缺點(diǎn)在哪,求解答
全局變量:
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的劍河網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
優(yōu)點(diǎn):變量在各個(gè)函數(shù)間自由調(diào)用和賦值,不需要考慮各個(gè)函數(shù)直接的傳值問(wèn)題,程序簡(jiǎn)單。
缺點(diǎn):①資源占用多;②函數(shù)的移植性差;③全局變量用的多容易混,程序員記憶量大,有時(shí)需要列一個(gè)變量表。
結(jié)構(gòu)體變量:
優(yōu)點(diǎn):方便。
缺點(diǎn):使用范圍受限,如果幾個(gè)返回值正好是某個(gè)已有結(jié)構(gòu)體變量的內(nèi)容,那才是不二的選擇。如果單獨(dú)為了返回幾個(gè)值而定義一個(gè)結(jié)構(gòu)體變量,則得不償失,增加編程的工作量。所以這個(gè)方法用的少。
傳值參數(shù)(指針):
優(yōu)點(diǎn):用傳值參數(shù)(指針)回傳返回值是最常用的方法,需要哪一個(gè)值回傳,就定義哪一個(gè)變量的指針,用完就把內(nèi)存收回來(lái)了,執(zhí)行速度快,程序直觀,函數(shù)的移植性好。
缺點(diǎn):要熟悉指針的使用,別搞亂套。定義指針,增加了一些工作量。
C語(yǔ)言一個(gè)程序的全局變量和局部變量返回問(wèn)題?。?/h2>
要想通過(guò)參數(shù) 影響主函數(shù)
只能通過(guò)傳指針的方法
至于你說(shuō)的返回值方式
只能返回一個(gè)值
不能返回兩個(gè)
return x,y;或者是return x;return y;
本身就是錯(cuò)的。
return x,y; 實(shí)際返回的是y值。
return x;return y
實(shí)際返回的是x值。
在c語(yǔ)言中,是怎么使用全局變量使得被調(diào)用函數(shù)能夠返回多個(gè)值?
分析:全局變量作為C語(yǔ)言的一個(gè)知識(shí)點(diǎn),雖然我們都了解它的特點(diǎn),但在實(shí)際教學(xué)過(guò)程中應(yīng)用得并不是很多。由于全局變量的作用域是從定義變量開始直到程序結(jié)束,而對(duì)于編寫有多個(gè)返回值的C語(yǔ)言函數(shù),我們可以考慮把要返回的多個(gè)值定義成全局變量。當(dāng)函數(shù)被調(diào)用時(shí),全局變量被更改,我們?cè)侔迅暮蟮娜肿兞恐祽?yīng)用于主調(diào)函數(shù)中。函數(shù)被調(diào)用后被更改后的全局變量值即為函數(shù)的數(shù)個(gè)返回值。下面以一個(gè)實(shí)例演示該方法的應(yīng)用。
實(shí)例:編寫函數(shù)求3個(gè)數(shù)中的最大值與最小值。
方法:把最大值、最小值分別定義成2個(gè)全局變量max、min,在用戶自定義函數(shù)中把求出來(lái)的最大值與最小值分別賦給全局變量max、min。函數(shù)調(diào)用完畢后全局變量的max、min值即保存了函數(shù)要求返回的值。程序參考代碼如下:
#include "stdio.h"
#include "conio.h"
int max,min;/*定義兩個(gè)全局變量用于保存函數(shù)返回值*/ void max_min(int a,int b,int c) /*定義求最大最小值的函數(shù)*/ {max=min=a; /*初始化最大最小值*/
if(max if(max if(minb)min=b; if(minc)min=c; }
main() {int x,y,z;
printf(" 請(qǐng)輸入3個(gè)整數(shù):\n"); scanf("%d,%d,%d",x,y,z);
max_min(x,y,z) /*調(diào)用求最大值與最小值的函數(shù)*/
printf("三個(gè)數(shù)中的最大值為:%d;最小值為:%d",max,min);/*輸出最大值與最小值*/
getch(); }
文章名稱:C語(yǔ)言函數(shù)返回全局變量 c++ 返回局部變量
URL網(wǎng)址:http://www.dlmjj.cn/article/dddsdch.html