C语言结构体笔记
2024-10-06 06:59:00
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;
}
我们还可以通过.属性名的方式指定初始化器,对指定对象赋值,其他的不变
最新文章
- wpf ListView DataTemplate方式的鼠标悬停和选中更改背景色
- CF #296 (Div. 1) B. Clique Problem 贪心(构造)
- 解决ie6 fixed 定位以及抖动问题
- CSS魔法堂:选择器及其优先级
- group_concat
- mysql shell
- java23中设计模式
- Boost.Build 简明教程
- UE编辑器加载格式化代码插件astyle
- QT creator中使用opencv
- Why Hadoop2
- postfix中recipient/client/sender/helo四者的区别<;转载>;
- Spring Data与elasticsearch版本对应关系
- (右偏树)Bzoj2333: [SCOI2011]棘手的操作
- 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
- 转载 转载 转载 数组a[],a,&;a之间的区别
- 浅说Get请求和Post请求
- Inner Functions - What Are They Good For?
- 【转】每天一个linux命令(35):ln 命令
- kubernetes下的Nginx加Tomcat三部曲之三:实战扩容和升级