你說的這種情況,函數(shù)返回的是整個結(jié)構(gòu)體,無論這個結(jié)構(gòu)體中包含了多少個成員,一個結(jié)構(gòu)體就只是一個變量(結(jié)構(gòu)體本身就是一個變量,無論它包含了多少個成員)。這樣,函數(shù)返回一個結(jié)構(gòu)體就意味著函數(shù)把結(jié)構(gòu)體中所有的成員都返回了。C語言函數(shù)的確只能有一個返回值,用返回結(jié)構(gòu)體的方式就很好地解決了需要返回多個返回值的問題。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、網(wǎng)站制作、象山網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、象山網(wǎng)絡(luò)營銷、象山企業(yè)策劃、象山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供象山建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
return后面沒有0或1,說明這個函數(shù)是void類型的,這類函數(shù)本來就不需要有返回值,這里的return的意思并不是要返回某個值,而是退出這個函數(shù)的意思。
我在VC6里面運行了一下主要有一下的錯誤
1,首先,漢字“男”這個是一個字符串,所以必須占三個字節(jié)也就是 char sex[3];才可以記住,字符串以‘\0’結(jié)尾哦!你沒有算\0
2,就是你丟了好幾個(逗號),自己找下
4,,再次你的struct test后的k[5]只能說是聲明了一個變量,但是變量的初始化必須在main 內(nèi)進行,但是又牽扯到了字符賦值的問題!這個可能你沒太深入去學(xué)!額錯誤有點多,我給你改了下,你自己在仔細找找哪里有錯誤吧!
#includestdio.h
struct test
{
int kaohao;
char name[10];
char sex[3];
int age;
float chengji;
};
void best(test k[5])
{
int i=0;
float max=0;
struct test maxs;
for(;i5;i++)
if(k[i].chengjimax)
{
max=k[i].chengji;
maxs=k[i];
}
printf("最高成績的人是:%s\n成績?yōu)?f\n",maxs.name,maxs.chengji);
}
int main()
{
struct test k[5]={ //要是.c文件的話就必須注明聲明變量!你之前的聲明也可以聲明
//k[5]變量但是不能在拿來初始化!總的來說你寫的還挺不錯的!
//繼續(xù)加油啊!
{1101,"張三","男",19,68.5},
{1102,"李四","男",20,75},
{1103,"王五","女",18,80.5},
{1104,"孫六","女",18,90},
{1105,"周七","男",19,59}};
best(k);
return 0;
}
在另外一個函數(shù)里面使用的源代碼如下:
#include"stdio.h"
#include "conio.h" //-------添加這個頭文件,因為getch()函數(shù)來自它,否則編譯會有警告
struct student ? /*定義結(jié)構(gòu)體*/
{
void main()
{
void data_in(struct student putin[]);
void data_out(struct student *p);
void data_pout(struct student *s1);
data_in(pers); ? ? ?/*調(diào)用指針輸入函數(shù)*/
data_out(sp); ? ? /*調(diào)用指針輸出函數(shù)*/
data_pout(sp); ? /*調(diào)用函數(shù)名輸出函數(shù)*/
getch();
}
擴展資料
1、函數(shù)是C語言的基本組成元素,當(dāng)我們調(diào)用一個函數(shù)時,需要明確函數(shù)名和實參列表。實參列表中的參數(shù)可以是常量、變量、表達式或者空,并且各參數(shù)之間要使用英文逗號分隔開來。
2、在C語言中,函數(shù)的定義是獨立的,一個函數(shù)不能定義在另一個函數(shù)內(nèi)部。但在調(diào)用函數(shù)時,可以在一個函數(shù)中調(diào)用另一個函數(shù),這就是函數(shù)的嵌套調(diào)用。接下來我們通過一個案例來演示函數(shù)的嵌套調(diào)用。
c語言函數(shù)可以返回結(jié)構(gòu)體,操作方法如下:
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):釋放申請的堆空間。