C 语言struct(结构体)语法

C 语言struct(结构体)语法,第1张

结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)

char[] 和 char 都可以声明一个字符, 但是是有区别的, char[] 可以直接 *** 作字符串中的每个字符, 而char 则不可以
char[]是数组, 不是指针, 指针赋值可以使用点的方式或者->
数组赋值字符串只能使用strcpy()的方式, char 则可以直接使用() *** 作符和赋值

说明: title是数组, 不是指针, 指针赋值可以使用点的方式或者->, 数组赋值字符串只能使用strcpy()的方式

这种写法是在定义时声明了变量为subject, 使用时不需要struct Subject subject 这种写法
而是直接使用subject就可以了

使用

其他一些定义结构体的方式

3如果需要变量是固定的,后面不需要再使用结构体名定义其他变量,那么在定义时也可以不给出结构体名,如下所示:

结构体设置别名

在使用时 Person <==> struct person , 二者是等价的

结构体数组在定义的同时也可以初始化,例如:

*** 作

而不能写作:

通过结构体指针可以获取结构体成员,一般形式为:

或者:

第一种写法中,的优先级高于,(pointer)两边的括号不能少。如果去掉括号写作pointermemberName,那么就等效于(pointernumberName),这样意义就完全不对了。

第二种写法中,->是一个新的运算符,习惯称它为“箭头”,有了它,可以通过结构体指针直接取得结构体成员;这也是->在C语言中的唯一用途。

typedef sruct lnode{
elemtype data;
struct lnode next;
}lnode,linklist;
lnode 与linklist 都是struct lnode 的 别名 ,struct lnode,这个lnode是不可以用来声明对象的,但是最后面出现的lnode与linklist都是可以用来声明对象的。
下面是个参考。你就知道是什么意思了。数据结构里一般也分c和c++的,你要看情况来定。
下面链接给了全部解释。
主要是struct 和 typedef struct 是不一样的
>声明一个结构体类型的一般形式为:
struct 结构体名
{成员列表};
"结构体名"用作结构体类型的标志,它又称“结构体标记”。大括弧内事该结构体中的各个成员,由他们组成一个结构体。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13163936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-14
下一篇 2023-06-14

发表评论

登录后才能评论

评论列表(0条)

保存