函數(shù)的返回值頂多是一個(gè)數(shù),通過(guò)函數(shù)直接返回的這個(gè)數(shù)只有在是指針時(shí)才能給出多個(gè)數(shù)據(jù)結(jié)果。

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的延津網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
可以考慮以下幾個(gè)方法:
返回指針:
int*?display() {?int *p;?p=malloc(sizeof(int)*6); ... return p;?} //用p[0]~p[5]計(jì)算各位
void main() {?int?*p; p=display(); ... free(p);?}
使用全局變量:將shiwa,wa,qiao,bai,shi,ge定義成全局變量,然后子程序和主程序直接用
使用函數(shù)參數(shù):
void display(int* shiwa,int* wa,int* qiao,int* bai,int* shi,int ge)
函數(shù)中用類(lèi)似這樣的用法計(jì)算:(*ge)=Data%10;
void main() {?int shiwa,wa,qiao,bai,shi,ge; display(shiwa,wa,qiao,bai,shi,ge)?}
用一個(gè)足夠長(zhǎng)的數(shù)返回:
long display() {?long n;?... n=shiwa; n*=10; n+=wa; n*=10; n+=qiao; n*=10; n+=bai; n*=10; n+=shi; n*=10; n+=ge; return n;?}
void main() {?int wa; long n; n=display(); wa=n/10000; wa%=10;?}
如果函數(shù)在正常結(jié)束后返回主函數(shù),則不用額外添加任何語(yǔ)句,到函數(shù)結(jié)束后自動(dòng)返回主函數(shù);
如果是在函數(shù)中間某個(gè)分支處需要直接退出函數(shù)返回到主函數(shù),則可以添加return;語(yǔ)句行,程序執(zhí)行到這一語(yǔ)句后,就會(huì)立即返回到主函數(shù)。當(dāng)然也可以通過(guò)讓分支跳轉(zhuǎn)到函數(shù)末尾的地方來(lái)返回主函數(shù)。
你函數(shù)里面,用 d= p1; p1 = p2 這是p1指向P2的內(nèi)存地址,其實(shí)地址所在的內(nèi)存里的值還是原來(lái)的一點(diǎn)沒(méi)變。
可以這么改
int temp = 0;
temp = *p1;
*p1 = *p2;
*p2 = temp;
也可以這樣
*p1 = *p1 + *p2;
*p2 = *p1 - *p2;
*p1 = *p1 - *p2;
把想返回值的變量的地址作為參數(shù)發(fā)送,然后到函數(shù)里再對(duì)參數(shù)賦值就可以了
比如,想改變main函數(shù)中a的值
函數(shù)定義:
void f(int * pa,....)
{
...
*pa = ....
....
}
調(diào)用函數(shù)時(shí)
f(a,...)
這樣就可以“返回”多個(gè)值了,只不過(guò)無(wú)法用return語(yǔ)句返回
定義三個(gè)變量。#includestdio.h
int main(void)
{
int a=3;
int b=5;
int c=0;
c=a;
a=b;
b=c;
printf("a=%d,b=%d",a,b);
getchar();
return 0;}
static char* parameters[]={}; 你這句不能通過(guò)編譯,因?yàn)槟阌昧藍(lán)}, 花括號(hào)里沒(méi)東西,沒(méi)辦法確定[]里的數(shù)值是幾(初始化錯(cuò)誤)。
你可以改成:
static char* parameters[10]; //假定指針數(shù)組有10個(gè)元素。
注意,你聲明的是指針數(shù)組,它們沒(méi)有存放字符串的內(nèi)存單元,只有存放指向的地址的能力。
所以程序里要提供 存放字符串的地方。如果沒(méi)有提供,你的輸出就是空白。
程序例子:
#include stdio.h
static char* parameters[10];
void f1(){
static char s[ ]="abcd1234"; //存放字符串的地方,函數(shù)調(diào)用完畢時(shí),單元依然存在
parameters[0]= s;
}
void f2(){
static char s[ ]="xyz5678"; //存放字符串的地方,函數(shù)調(diào)用完畢時(shí),單元依然存在
parameters[1]=s;
f1(); // 調(diào)函數(shù) f1
}
main(){
int i;
f2(); //調(diào)函數(shù) f2,f2 調(diào)函數(shù)f1
for (i=0;i2;i++) printf("%s\n",parameters[i]); // 輸出2個(gè)字符串
return 0;
}
輸出:
abcd1234
xyz5678
文章標(biāo)題:c語(yǔ)言函數(shù)賦值到主程序 C語(yǔ)言函數(shù)賦值
鏈接URL:http://chinadenli.net/article12/doogsgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、電子商務(wù)、網(wǎng)站導(dǎo)航、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)