形參要加上結構體名;與聲明一個結構體數(shù)組一樣
10年積累的成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計制作后付款的網(wǎng)站建設流程,更有榆次免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
即 show(struct 結構體名 數(shù)組名[]);
這樣寫是不可以的。
應該這么聲明:
void days(struct student * judget)
{
//省略
}
struct student s;
s.year = year;
s.month = month;
s.day = day;
days(s);//這么使用
但是我不明白為什么結構體的名稱是student啊,這個和學生沒有關系,應該起個相關的名稱,如time之類的,呵呵
代碼不全。
是這樣的,和參數(shù)無關,C語言存在類型的隱式轉換,比如說一個short可以被當作一個int,而無需額外的轉換,但是相反就不行。
隱式轉換方便了開發(fā)者編碼,但是它的限制同樣為了防止你無心犯錯。
好比你用大碗盛小碗的食物,編譯器不用讓你確認,自己就做了。但是你用小碗裝大碗的食物,那么編譯器提醒你,如果大碗的東西太多,可能會出錯。那么你需要寫清楚,表示你知道這么回事,它才接受。
fun函數(shù)的第二個參數(shù)之所以用指針,就是為了能把函數(shù)里面對這個參數(shù)做的改動保存下來
而你如果把*s=a[p];改成s=a[p];效果相當于,改了s的值,使其不再指向參數(shù)(函數(shù)
外部變量
m)的地址,雖然*s的值是正確的,但實際m的值則沒有改變,所以在外面輸出的時候,結果和預期不一致了
s=a[p];這個操作本身沒有問題
C語言中,所有的變量都存儲在內(nèi)存中,可以通過運算符獲得變量的內(nèi)存地址,函數(shù)調用時,只需要把普通變量前加上符號,就可以達到傳遞變量地址的目的。
例如:
定義一個結構體類型
struct?Yearmonthday
{?
int?year,?month,?day;
};
定義相關函數(shù),參數(shù)類型指定為結構體類型指針
void?input(struct?Yearmonthday?*p1)?//函數(shù)形參p1是結構體指針類型
{
printf("請輸入年,月,日:");
scanf("%d,%d,%d",p1-year,p1-month,p1-day);
}
在主函數(shù)中定義一個結構體變量,調用相關函數(shù),傳遞變量地址
int?main()
{?
struct?Yearmonthday?ymd;
input(ymd);?//傳遞變量地址,以便帶回數(shù)據(jù)
printf("date=%d/%d/%d\n",?ymd.year,?ymd.month,?ymd.day?);?//輸出結果
return?0;
}
分享文章:c語言函數(shù)形參結構體 c語言函數(shù)的形參
網(wǎng)頁地址:http://aaarwkj.com/article34/doooese.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、手機網(wǎng)站建設、網(wǎng)站導航、Google、用戶體驗、營銷型網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)