1、可以的,這樣寫:test((RGBColor){0x0,0x1,0x2});這個意思是把{0x0,0x1,0x2}強制轉化為RGBColor類型。從語法語義上面是沒問題的,在GCC編譯沒問題。但是51上面沒實驗,按C標準能說得通,你可以試一試。
成都創新互聯專注于企業網絡營銷推廣、網站重做改版、濱湖網站定制設計、自適應品牌網站建設、H5技術、商城開發、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為濱湖等各大城市提供網站開發制作服務。
2、其實,結構名就是一個變量,由于你的形參和你的實參取名是一樣的。而且對于形參肯定會變 實參不會變。所以,你中間的maxA變量,其實是子函數的形參變了。
3、結構體數組傳給指針,實質上是不可能的,本質上傳的是數組首地址,根據偏移來操作數組,這樣看起來好像是真在操作數組一樣。就和普通指針一樣使用,只不過它是結構體數組。
結構體數組傳給指針,實質上是不可能的,本質上傳的是數組首地址,根據偏移來操作數組,這樣看起來好像是真在操作數組一樣。就和普通指針一樣使用,只不過它是結構體數組。
可以把結構體作為參數啊,不去取地址的意思,是引用的意思,函數執行時修改L的值,就直接的修改了實參的值,相當于地址傳遞了。真正調用的時,如下:SqList tempStruct;InitList_Sq(tempStruct)這樣就可以了。
數組作為參數是按地址傳遞的 數組名就是數組的首地址。因此在數組名作函數參數時所進行的傳送只是地址的傳送, 也就是說把實參數組的首地址賦予形參數組名。形參數組名取得該首地址之后,也就等于有了實在的數組。
C語言中,數組名作為函數參數,屬于數組參數傳遞。在VB0中,允許使用數組作為實參傳遞到子過程的形參中,數組傳遞必須采用地址傳遞的方式來傳遞參數。
void repeat(city *la,char * name,int x,int y)因為char name[10]是數組,而函數的參數為字符,所以調用失敗。
參數的傳入分為兩種形式:值傳遞和地址傳遞。
1、你說的不對 不是參數S是指針 而是定義了一個機構體SString類型的指針S,引用時應該傳遞結構體的地址用取地址符號& ***來引用。
2、結構體數組傳給指針,實質上是不可能的,本質上傳的是數組首地址,根據偏移來操作數組,這樣看起來好像是真在操作數組一樣。就和普通指針一樣使用,只不過它是結構體數組。
3、struct 中定義的函數指針是沒有參數的,但是主函數調用時是有參數的,這是矛盾的呀。要改一下:struct ST{ int i;double x;void (*o)(ST*);void (*p)(ST*);} ;就沒有問題了。
4、可以把結構體作為參數啊,不去取地址的意思,是引用的意思,函數執行時修改L的值,就直接的修改了實參的值,相當于地址傳遞了。真正調用的時,如下:SqList tempStruct;InitList_Sq(tempStruct)這樣就可以了。
本文名稱:c語言函數形參為結構體 c語言函數參數為結構體
文章URL:http://vcdvsql.cn/article38/ddeippp.html
成都網站建設公司_創新互聯,為您提供網站導航、服務器托管、定制網站、移動網站建設、云服務器、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯