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;
}

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

最新文章

  1. wpf ListView DataTemplate方式的鼠标悬停和选中更改背景色
  2. CF #296 (Div. 1) B. Clique Problem 贪心(构造)
  3. 解决ie6 fixed 定位以及抖动问题
  4. CSS魔法堂:选择器及其优先级
  5. group_concat
  6. mysql shell
  7. java23中设计模式
  8. Boost.Build 简明教程
  9. UE编辑器加载格式化代码插件astyle
  10. QT creator中使用opencv
  11. Why Hadoop2
  12. postfix中recipient/client/sender/helo四者的区别&lt;转载&gt;
  13. Spring Data与elasticsearch版本对应关系
  14. (右偏树)Bzoj2333: [SCOI2011]棘手的操作
  15. 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
  16. 转载 转载 转载 数组a[],a,&amp;a之间的区别
  17. 浅说Get请求和Post请求
  18. Inner Functions - What Are They Good For?
  19. 【转】每天一个linux命令(35):ln 命令
  20. kubernetes下的Nginx加Tomcat三部曲之三:实战扩容和升级

热门文章

  1. table固定宽度与自动宽度
  2. JS中浏览器的数据存储机制
  3. Java 之 注解
  4. Python 简单web服务器的实现
  5. sql server split切割字符串
  6. JAVA中为什么要使用接口,继承接口不是还要重写方法吗?为什么不直接写那些方法呢?:::接口的最主要的作用是达到统一访问
  7. 深入浅出Git(偏向理论)
  8. python之random、time与sys模块
  9. 越狱后cydia无法联网
  10. Stages — 研发过程可视化建模和管理平台