c語言函數(shù)可以返回結(jié)構(gòu)體,操作方法如下:
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、長順網(wǎng)站維護、網(wǎng)站推廣。
1、首先在電腦中打開visual studio新建項目,給這個結(jié)構(gòu)體取個名字叫student。
2、然后添加變量,如下圖所示。
3、然后給結(jié)構(gòu)體類型指針p申請堆空間,如下圖所示。
4、接著使用for循環(huán)給結(jié)構(gòu)體賦值,如下圖所示。
5、最后在通過for循環(huán)打印輸出,這樣就完成就結(jié)構(gòu)體的基本創(chuàng)建,結(jié)尾不要忘了使用free(p):釋放申請的堆空間。
STU??f?(STU??a)
{ ?STU??b={"Zhao",?'m',?85,?90};
int??i;
strcpy(?a.name,?b.name?);
a.sex?=?b.sex;
for?(?i=0;?i2;?i++?)??a.score[i]?=?b.score[i];
以上是將b中的數(shù)據(jù)賦值給a,相當于a=b;這樣的一個操作
return??a;?
}
main()
{ ?STU??c=?{?"Qian",?'f',?95,?92?},?d;
d?=?f(c);//這里傳的c是個復制品(傳遞的不是結(jié)構(gòu)體指針),所以c不會變,d接收f()函數(shù)的返回值,因為返回值的內(nèi)容是f()中的b的值,所以,d與c不同
printf?("%s,%c,%d,%d,?",?d.name,?d.sex,?d.score[0],?d.score[1]);
printf?("%s,%c,%d,%d\n",?c.name,?c.sex,?c.score[0],?c.score[1]);
}
輸出結(jié)果為:A)??Zhao,m,85,90,?Qian,f,95,92
void f(A c) /* 注意:c結(jié)構(gòu)變量名 但這個c也是個復制品,與原實參只是一樣的內(nèi)容,卻不是同一個??! */ 所以結(jié)果還是a={1,2}; 答案為B