C語言-結(jié)構(gòu)體傳值和傳址

發(fā)布時(shí)間:2022-04-19 08:15:23  |  來源:騰訊網(wǎng)  

理論

結(jié)構(gòu)體傳值,

形參(值)不改變實(shí)參(值),

將結(jié)構(gòu)體變量的值作為實(shí)參傳遞。

結(jié)構(gòu)體傳址,

形參(指針)改變實(shí)參(地址)所指成員的結(jié)構(gòu)體值,

將結(jié)構(gòu)體變量的地址作為實(shí)參傳遞。

struct A t

A是結(jié)構(gòu)體標(biāo)識(shí)名,t是變量名,

t中包含若干成員。

傳值

#include

#include

/*結(jié)構(gòu)體說明*/

struct A

;

/*函數(shù)說明*/

void f(struct A t);

/*主函數(shù)*/

void main()

;

f(a);

printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}

/*定義函數(shù)*/

void f(struct A t)

結(jié)果

是a,1111,"Zenglaoshi",1111.0

不是t,2222,"Zhangyida",2222.0

只是生成參數(shù)a的一個(gè)副本,

不會(huì)改變a的值。

傳址

#include

#include

/*結(jié)構(gòu)體說明*/

struct A

;

/*函數(shù)說明*/

void f(struct A *p);

/*主函數(shù)*/

void main()

;

f(&a);

printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}

/*定義函數(shù)*/

void f(struct A *p)

結(jié)果

是*p,2222,"Zhangyida",2222.0

不是a,1111,"Zenglaoshi",1111.0

改變a的值。

關(guān)鍵詞: C語言-結(jié)構(gòu)體傳值和傳址 struct void

 

網(wǎng)站介紹  |  版權(quán)說明  |  聯(lián)系我們  |  網(wǎng)站地圖 

星際派備案號(hào):京ICP備2022016840號(hào)-16 營業(yè)執(zhí)照公示信息版權(quán)所有 郵箱聯(lián)系:920 891 263@qq.com