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

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

C语言结构体笔记的更多相关文章

  1. Linux C语言结构体-学习笔记

    Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...

  2. 漫谈C语言结构体struct、公用体union空间占用

    先用代码说话: #include<stdio.h> union union_data0{ int a ;//本身占用4个字节 char b ;//本身占用1个字节 int c ; }; u ...

  3. 解析C语言结构体对齐(内存对齐问题)

    C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...

  4. 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符

    [源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...

  5. Go语言结构体(struct)

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...

  6. C语言结构体定义的几种方法

    什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据 ...

  7. 对嵌入式开发C语言结构体的一点总结

    今天冬至居然不上班,公司的良心啊!这回有心情写博客和日志了,好了,废话不多说.直接看下文: 鉴于嵌入式开发过程中,C语言结构体的使用当然是必不可少.话说,基础什么的比你会更牛逼的算法更重要,基础不牢, ...

  8. C语言结构体变量私有化

    操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 ...

  9. 在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

随机推荐

  1. MD 使用 i5ting_toc 转换成 HTML

    MD 使用 i5ting_toc 转换成 HTML 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Wed, 10 Jul 2019 13:59:00 +0800 前言 md ...

  2. PL/SQL Developer_如何快速获得表名或全部列名的文本形式

    转自:https://blog.csdn.net/xwnxwn/article/details/53388887 操作过程: 例1:以“逗号”格式获取“用户表名”的文本 使用scott登陆到PL/SQ ...

  3. 九、分组查询详解(group by & having)

    本篇内容 分组查询语法 聚合函数 单字段分组 多字段分组 分组前筛选数据 分组后筛选数据 where和having的区别 分组后排序 where & group by & having ...

  4. java - day017 - 线程

    进程 操作系统中, 并行执行的任务 线程 进程内部, 并行执行的任务 进程包含线程 线程的创建 继承Thred 定义 Thred 的子类 重写 run() 方法 在 run() 方法中的代码, 是与其 ...

  5. C++——overloading

    参考 C++——overloading principle analysis operator overloading C语言中,对一个东西进行操作一定要涉及到一个函数,对于自定义类型,为了实现其四则 ...

  6. [Golang][Mac]Go 语言学习资料记录

    背景:最近的项目开发语言是GOlang 因此需要做一些简单了解和学习记录 又可以学习一下Google的新语言了,想想有些小激动哦~ 官方网站(需翻墙才能打开,比如用蓝灯)https://golang. ...

  7. Python 包文件安装

    https://pypi.tuna.tsinghua.edu.cn/simple/ 清华源 https://pypi.doubanio.com/simple/ 豆瓣源 pip install -i h ...

  8. 《Python编程:从入门到实践》第五章 if语句 习题答案

    #5.1 major = 'Software Engineering' print("Is major =='Software Engineering'? I predict True.&q ...

  9. MyBatis3_[tp_41-42-43]-_动态sql_trim_自定义字符串截取_choose分支选择_update的set与if-trim 结合的动态更新

    笔记要点出错分析与总结 /** 笔记: * 查询的时候,如果某些条件,没带可能SQL拼装会有问题; * 1.-->给where 后面加上 1=1, 以后的条件都and XXX * 2. < ...

  10. Tomcat 安装配置

    操作系统:win10 家庭版 1. 官网下载 https://tomcat.apache.org/download-80.cgi 我下载的免安装装. 2.文件解压到目录 D:\Program File ...