1、結(jié)構(gòu)體的聲明
(1)結(jié)構(gòu)體的關(guān)鍵詞是struct
第一種聲明
struct Point{
int x;
int y;
}; //第一種聲明方法
第二種聲明
struct Point{
int x;
int y;
}p1,p2;
第三種聲明
struct {
int x;
int y;
}p1,p2;
2、結(jié)構(gòu)體定義變量
在C++語言中類的成員變量可以在類中進(jìn)行初始化,但是C語言的結(jié)構(gòu)體是不能在結(jié)構(gòu)體中對變量進(jìn)行初始化,只能在結(jié)構(gòu)外進(jìn)行初始化。
定義變量
struct Point p1={11,12};
除此之外結(jié)構(gòu)體中的變量還有float,double,char,結(jié)構(gòu)體
結(jié)構(gòu)體之間的賦值
struct Point p3=p1;
//or
struct Point p3;
p3=p1;
結(jié)構(gòu)體成員變量是如何訪問的
struct Point p1={11,12};
//用“.”運(yùn)算符進(jìn)行訪問
printf("p1的值是:%d,%d",p1.x,p1.y);
//用指針訪問結(jié)構(gòu)體的變量
struct *p=&p1;
printf(p1的值是:%d,%d",p->x,p->y);
代碼.png
運(yùn)行結(jié)果.png
結(jié)構(gòu)體做參數(shù)
數(shù)組可以做參數(shù)傳遞的是地址,而結(jié)構(gòu)體做參數(shù)只是傳遞值,主函數(shù)調(diào)用函數(shù)結(jié)果沒有發(fā)生改變
struct A{
int i;
};
A a;
void func1(struct A p)
{
printf("%d\n",p.i);
p.i=44;
printf("%d\n",p.i);
}
void func2(struct A *p)
{
printf("%d\n",p->i);
p->i=66;
printf("%d\n",p->i;
}
int main()
{
a.i=33;
strcut A *pt;
pt=&a;
func1(a);
func2(&a);
func2(pt);
return 0;
}
結(jié)構(gòu)體做參數(shù).png
結(jié)構(gòu)體做參數(shù)運(yùn)行結(jié)果.png