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 结构体名
{成员列表};
"结构体名"用作结构体类型的标志,它又称“结构体标记”。大括弧内事该结构体中的各个成员,由他们组成一个结构体。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)