C语言结构体笔记

mac2022-06-30  36

typedef给结构起别名

可以是匿名结构或者普通的结构,方便后面使用。

#include<stdio.h> typedef struct{ //匿名结构 float tank_capacity; int tank_psi; const char *suit_material; } equipment; //结构的别名 typedef struct scuba{ //结构名 const char *name; equipment kit; } diver; void badge(diver d){ //使用“点表示法”访问结构的值,不能使用下标 printf("Name:%s Tank:%2.2f(%i) Suite:%s\n",d.name,d.kit.tank_capacity,d.kit.tank_psi,d.kit.suit_material); }; int main(){ diver randy = {"Randy",{5.5,3500,"Neoprene"}}; badge(randy); return 0; }

给结构的元素赋值

在C语言中,当为结构赋值时,计算机会复制结构的值。所以需要结构指针

typedef sturct{ const char *name; int age; } turtle; turtle t={"lisa",12}

(*t).age和t.age含义不同t.age等于*(t.age),它代表这个存储器单元中的内容。 为了方便阅读通常将(*t).age写作另一种形式 (*t).age==t->age t->age表示"由t指向结构中的age字段"。

指定初始化器的方式

#include<stdio.h> typedef struct{ const char* color; int gears; int height; } bike; int main(){ bike b= {.height=3,.color="red"}; printf("%d\n",b.height); printf("%s\n",b.color); printf("%d\n",b.gears); return 0; }

我们还可以通过.属性名的方式指定初始化器,对指定对象赋值,其他的不变

转载于:https://www.cnblogs.com/c-x-a/p/11527638.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)