c语言结构体定义和使用是什么?

Python014

c语言结构体定义和使用是什么?,第1张

c语言结构体是类似于名片形式的数据集合体,可以把它理解为一种由用户自定义的特殊的复合型的“数据类型”,在这个复合型的“数据类型”中可以包含多种基本数据类型,我们可以把它作为一个整体来操作。

c语言使用:结构数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用 for 循 环一个一个地使用结构体数组中的元素。

结构体的意义

结构体描述了一段内存的解释意义。

在内存中,数据的意义在于如何使用此段数据,如在内存中存有一个数据3,如果只把他当作正整数来使用,那么其意义为正整数3,如果把内存中的3,当作2的3次方来使用,那么3的意义则为指数3。而一个结构体则描述了一段内存中的数据的使用意义。

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

char[] 和 char * 都可以声明一个字符, 但是是有区别的, char[] 可以直接操作字符串中的每个字符, 而char * 则不可以.

char[]是数组, 不是指针, 指针赋值可以使用点的方式或者->.

数组赋值字符串只能使用strcpy()的方式, char * 则可以直接使用(.)操作符和赋值

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

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

而是直接使用subject就可以了

使用

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

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

结构体设置别名

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

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

操作

而不能写作:

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

或者:

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

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