曦远 (DealiAxy)一份私人的文字刊物

StarBlog
返回文章列表折页手记阅读全文
数据结构

C语言准备知识:typedef-和-typedef-struct

typedef typedef existing new; typedef 的功能是建立新的数据类型名,比如: typedef int Length; // 数据类型 typedef char *String; // 字符指针 typedef struct tnode *Treeptr; // 指针 typedef int (*PFI) (char *, char *); // 指向函

曦远 (DealiAxy)约 3 分钟
目录6 个章节

typedef

typedef existing new;

typedef 的功能是建立新的数据类型名,比如:

typedef int Length;  // 数据类型

typedef char *String;  // 字符指针

typedef struct tnode *Treeptr;  // 指针

typedef int (*PFI) (char *, char *); // 指向函数的指针

Length l = 120;
printf("%d \n", l);

typedef 声明并没有创建一个新类型,它只是为某个已存在的类型增加了一个新的名称而已。

使用 typedef 的两个关键好处是:

  • 可以使程序参数化,提高程序的移植性。
  • 可以为程序提供更好的说明性,增加可读性。

struct

struct 用于定义一个包含多个成员的新的数据类型。分别有以下 4 种定义方式:

方式 1:不指定类型名,直接声明结构体变量(不推荐使用)

struct {
    int age;
} student;

student.age = 18;
printf("%d \n", student.age);

方式 2:先定义类型名,再声明结构体变量

特点:每次都需要使用 struct 类型名 去声明变量。

struct Student {
    char name;
    int age;
};

struct Student student1;
student1.age = 20;

方式 3:定义类型名并声明结构体变量

struct HeadTeacher {
    int age;
} h1;

h1.age = 50;
struct HeadTeacher h2;
h2.age = 70;
printf("head teacher1 age = %d \n", h1.age);
printf("head teacher2 age = %d \n", h2.age);

方式 4:定义类型名并起别名 (推荐)

typedef struct {
    int age;
} Teacher;

Teacher t;
t.age = 30;
printf("teacher age = %d \n", t.age);

_EOF_

C语言准备知识:typedef-和-typedef-struct

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

操作系统学习三:进程调度与死锁-以及银行家算法避免死锁--NetCore实现

前言 这是操作系统学习的第三篇啦,关于进程调度有很多内容,操作系统在调度进程的时候最容易遇到的问题就是死锁了,银行家算法是一个典型的避免死锁算法。 死锁的概念 先来了解一下死锁的基本概念:一组竞争系统资源或相互通信的进程相互的“永久”阻塞。若无外力作用,这组进程将永远不能继续执行。 看下面两幅图片,左边是可能产生死锁的状态,四辆汽车(进程)要竞争同一个资源(通过路口),如果系统调度不当,就会陷入死

2021-12-18 · 计科基础 · 约 1 分钟

C#学习(三)深入理解委托、匿名方法和-Lambda-表达式

前言 lambda的概念建立在委托的基础上,委托,实现了类型安全的回调方法。在.NET 中回调无处不在,所以委托也无处不在,事件模型建立在委托机制上,Lambda 表达式本质上就是一种匿名委托。本文中将完成一次关于委托的旅行,全面阐述委托及其核心话题,逐一梳理委托、委托链、事件、匿名方法和 Lambda 表达式。 委托的定义 了解委托,从其定义开始,通常一个委托被声明为: public deleg

2021-12-18 · C# · 约 1 分钟

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…