C语言 结构体 typedof

作者&投稿:大狐炭 (若有异议请与网页底部的电邮联系)
关于C语言枚举类型的问题。 如果枚举类型出现在结构体中,如果想输入该怎么输入? 比如说 typed~

student1.sex=male或student1.sex=Female

  c++中结构体可以定义一个函数
  C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。
  C++中的结构体和类的异同:
  一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。
  二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,类的关键字class能作为template模板的关键字 即template class A{}; 而struct不可以。
  实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。

struct
{ int num;
char name[20];
char sex;
};//是无名的结构体,只能在定义时定义对象,过后,不能用来定义结构体对象
struct LNode
{ int num;
char name[20];
char sex;
}//是带名的结构体 随时都可以定义对象

typedof struct LNode
{ int num;
char name[20];
char sex;
}LNode;//这样做是为在定义对象时 避免用struct LNode ***而可以用 LNode ***
不理解再问吧

如果要定义一个链表的结点数据结构,就要用第二种,因为链表的结点是一个递归定义。当然如果是一般的定义,用第一种就可以了。

typedef struct LNode
{ int num;
char name[20];
char sex;
}LNode;

1.两个LNode的意义是一样的,都是指的
struct
{ int num;
char name[20];
char sex;
};

所以,有点多此一举,用第一种办法就行了,或者不用typedef


武鸣县13781081958: C语言 结构体 typedof -
白枯银杏: 如果要定义一个链表的结点数据结构,就要用第二种,因为链表的结点是一个递归定义.当然如果是一般的定义,用第一种就可以了....

武鸣县13781081958: C语言中typedef的定义 -
白枯银杏: 就是起个别名 在这里用PERSON替代了struct data. 用LINK替代了PERSON*,也就是struct data*. new = (LINK)malloc(sizeof(PERSON));的意思是 new = (struct data*)malloc(sizeof(struct data));

武鸣县13781081958: C语言用typedef声明一种结构体类型的用法? -
白枯银杏: typedef就是”声明一个类型“的意思. 这是两种声明结构体的方法,一种是加上typedef,声明的就是类型,另外一种不加typedef,就是直接定义变量了.

武鸣县13781081958: typedef在C语言中是什么意思 -
白枯银杏: struct是结构体的关键字,用来声明结构体变量如 struct student { char num[10]; char name[20]; int age; }; typedef是用来定义新的类型名来代替已有的类型名, 可将上面的结构体定义为 typedef struct student { char num[10]; char name[20]; int age; }...

武鸣县13781081958: 求解答c语言结构体定义中typedef的作用 -
白枯银杏: c语言结构体定义中typedef的作用是为一种数据结构体定义一个新名字. 在c语言中使用typedef帮助定义结构体,对于声明结构体变量,便可以直接使用typedef xxx(结构体名 对象名)的形式,而没必要带上struct关键词.实际项目C代码中,结...

武鸣县13781081958: C语言typedef定义结构体数组,下面这段代码是什么意思? -
白枯银杏: 含义是:定义一个类型别名adjlist,这个类型是一个结构体类型为元素类型的长度为Vnum的数组,这个结构体类型的元素是int vertex和arcnode* firstarc.操作方法如下:1、首先在电脑中,打开Microsoft Visual Studio软件.2、接着新建C++ 控...

武鸣县13781081958: C语言typedef struct的用法 -
白枯银杏: C被定义成了一个类型,这样用: C myStructC; myStructC.a = 0.0; myStructC.b = 0;

武鸣县13781081958: C语言FILE结构体成员的解释 -
白枯银杏: File 结构体成员的解释:typedef struct { short level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ short bsize; /* Buffer size */ unsigned char *buffer; /* Data ...

武鸣县13781081958: C语言中typedef struct和struct区别 -
白枯银杏: 举个例子说明: typedef struct abc {int x; int y; int z; }ABC; 是将结构体abc类型重新起个名字为ABC,以后再定义同一类型的变量时,可以写成: ABC m,n; 与: struct abc m,n; 作用是一样的. 可将复杂数据类型简单化

武鸣县13781081958: C语言 结构体中的typedef struct {Adjlist ajdlist int n,e}是什么意思 -
白枯银杏: typedef struct Adjlist { int n,e; }ajdlist; 我觉得你这么写更容易理解,这段话的意思是定义一个名为 Adjlist的结构体,他的别名是 adjlist,也就是说你可能用 Adjlist或者 adjlist任意一个定义一个结构变量. Adjlist var1; adjlist var2; 这俩是一个意思

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网