理論
結(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