#include?stdio.h
防城網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),防城網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為防城超過(guò)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的防城做網(wǎng)站的公司定做!
#include?stdlib.h
#define?LINE_MAX?80
struct?body{
char?data[100];?//要定義成數(shù)組才可以,不然,還要去分配內(nèi)存
int?num;
};
void?create(struct?body?*bd);?//結(jié)構(gòu)體定義后,才能使用結(jié)構(gòu)體類型,所以,移動(dòng)到定義之后
int?main(int?argc,?char?*argv[])?{
int?choose;
struct?body?*bd;
bd?=?(struct?body*)malloc(sizeof(struct?body));
while(1)
{
printf("????????*******************歡迎來(lái)到文章編輯系統(tǒng)********************\n");
printf("1.???創(chuàng)建新文本\n");
printf("2.???統(tǒng)計(jì)文本\n");
printf("5.???退出系統(tǒng)\n");
printf("請(qǐng)選擇你需要的功能的序號(hào):");
scanf("%d",choose);
switch(choose)
{
case?1:
printf("創(chuàng)建新文本\n");
create(bd);
continue;
case?2:
printf("統(tǒng)計(jì)文本\n");
continue;
case?5:
printf("謝謝您的使用!\n");
break;
default:
printf("請(qǐng)正確輸入!\n");
continue;
}
if(choose?==?5)
break;
}
return?0;
}
void?create(struct?body?*bd)
{
printf("編輯文本,Enter鍵保存\n");
scanf("%s",bd-data);//結(jié)構(gòu)體指針引用成員用-,??同時(shí),格式串應(yīng)該是%s
printf("您輸入的文本是:%s\n",bd-data);?//同上
}
可以的,不過(guò)傳入的是改結(jié)構(gòu)體的一個(gè)副本
如果需要在函數(shù)中更改結(jié)構(gòu)體內(nèi)容,可以把這個(gè)結(jié)構(gòu)體的指針作為參數(shù)傳入函數(shù),返回的也是該結(jié)構(gòu)體的指針
1.可以把結(jié)構(gòu)體作為參數(shù)啊,
2.不去取地址的意思,是引用的意思,函數(shù)執(zhí)行時(shí)修改L的值,就直接的修改了實(shí)參的值,相當(dāng)于地址傳遞了。
3.真正調(diào)用的時(shí),如下:
SqList
tempStruct;
InitList_Sq(tempStruct)
這樣就可以了。
呵呵
參數(shù)類型改成
void*
,傳的時(shí)候傳指針,
使用的時(shí)候再?gòu)?qiáng)制轉(zhuǎn)換成想要的類型。注意類型安全