void inputarr(STUDENT s[ ], int n) {
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)大冶,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
int i;
for(i = 0; i n; ++i) {
printf("輸入第%d個學生的信息:\n",i + 1);
printf("學號:");
scanf("%d",s[i].num);
printf("姓名:");
scanf("%s",s[i].name);
printf("性別:");
scanf("%s",s[i].sex);
printf("成績:");
scanf("%f",s[i].score);
printf("出生日期: xxxx:xx:xx :");
scanf("%d:%d:%d",s[i].birthday.year,s[i].birthday.month,s[i].birthday.day);
}
}
void outputarr(STUDENT s[ ], int n) {
int i;
for(i = 0; i n; ++i) {
printf("%d %s %s [%04d:%02d:%02d] %.2lf\n",s[i].num,s[i].name,s[i].sex);
printf("[%04d:%02d:%02d] %.2lf\n",s[i].birthday.year,s[i].birthday.month,s[i].birthday.day,s[i].score);
}
printf("\n");
}
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
sub1是傳值調(diào)用,所以在sub1中對參數(shù)的修改,不影響實參a,
打印實參a的值還是初始化值。
sub2傳遞數(shù)組,本質(zhì)上為傳指針,所以在sub2中對參數(shù)修改,同步影響實參b。
所以打印b是修改后的值。
第一題中的name為什么是sundan
第一題中的num為什么該值:()
注意了,壓根沒有使用f的返回值,f也沒有返回值(void)
第二題(不再畫圖了),main中的s[0]與f中的p壓根是兩個內(nèi)存區(qū)域(當然了,傳參數(shù)時,將s[0]內(nèi)存區(qū)域的內(nèi)容拷貝到了p內(nèi)存區(qū)域),所以顯然,在f中修改內(nèi)存區(qū)域p,自然不會影響main中的內(nèi)存區(qū)域s[0],因此s[0]亦然保持本來的值。(即20041, 703)
本文標題:c語言結(jié)構(gòu)體函數(shù)圖解 c函數(shù)的結(jié)構(gòu)
本文鏈接:http://www.chinadenli.net/article8/dooghop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站排名、域名注冊、ChatGPT、虛擬主機、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)