三言两语搞懂c语言之struct与typedef(小白必看)
Posted 鲨鱼小猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三言两语搞懂c语言之struct与typedef(小白必看)相关的知识,希望对你有一定的参考价值。
一、Struct
1.1 struct含义
- Struct是用来存放不同变量的集合
1.2 struct用法1
基本形式
struct 结构体名
各种类型的变量
变量;
案例
定义结构体
//定义结构体名字和内容
struct people
char *name; //姓名
int age; //年龄
char sex; //性别
people1; //新建的变量
//结构体如同int,float一样,用来定义数据类型
//下面使用people结构体,定义people类型的变量
struct people people2;//struct people 如同 int
//注意不能写成people people1
//访问结构体类型的变量
people1.name = "XiaoMing";
people1.age = 18;
people1.sex = '男';
people2.name = "XiaoHong";
people2.age = 18;
people2.sex = '女';
1.3 struct用法2
定义结构体
//定义内容,注意这里没有结构体名
struct
char *name; //姓名
int age; //年龄
char sex; //性别
people1;//这里的people1不是结构体名!而是一个变量的名称。如同案例1
//注意,因为没有结构体名,所以代码之后就不能用该结构体定义新的变量
//访问结构体类型的变量
people1.name = "XiaoMing";
people1.age = 18;
people.sex = '男';
1.4 struct用法3
struct
char *name; //姓名
int age; //年龄
char sex; //性别
people1, people2 = "XiaoMing", 18, '男';
二、typedef
- 就是给别人取小名
- typedef 原生名 小名
上才艺
typedef int newInt;
//这时候,int也可以写为newInt
newInt a;//如同 int a;
三、Struct与typedef
- 这就是为啥我写这篇博客的原因,之前一直分不清楚
首先结构体在定义的时候,就可以一边定义,一边创建新变量对吧,比如下面的people1
struct
char *name; //姓名
int age; //年龄
char sex; //性别
people1;
然后typedef的用法是“typedef 原生名 小名”对吧,这个时候把原生名替换成上面的结构体就是这样。
typedef struct
char *name; //姓名
int age; //年龄
char sex; //性别
people1;//所以,这个people1是别名还是新建的变量呢?
//答案是别名,下面是案例
案例
#include <stdio.h>
int main()
typedef struct Node
int data;
LNode,*LinkList;
//LNode.data;这一句会报错
LNode new_node;//这一句不会报错,所以LNode是别名,而不是一个新的变量
new_node.data = 5;
printf("%d\\n", new_node.data);
LinkList a; //这句不报错,说明LinkList也是仍然别名
a = &new_node;
printf("%d\\n", a->data);
return 0;
以上是关于三言两语搞懂c语言之struct与typedef(小白必看)的主要内容,如果未能解决你的问题,请参考以下文章