首页 > 其他 > 详细

常见关键字用法(struct,typedef)

时间:2015-02-03 18:42:53      阅读:259      评论:0      收藏:0      [点我收藏+]

一、结构体sturct语法基础:

技术分享
/*结构体说明:
1、结构体是一种构造数据类型,将不同类型的数据组合成一个整体
2、结构体定义: struct  结构体名  { 类型标识符  成员名; };
3、struct是关键字,不能省略;结构体名可以省略,无名结构体;成员类型可以是基本型或构造型;
4、结构体变量的定义:
   (1)先定义结构体类型,在定义结构体变量: struct 结构体名 {类型标识符  成员名;};  struct 结构体名  结构体变量名;
   (2)定义结构体类型的同时定义结构体变量: struct 结构体名 {类型标识符  成员名;} 结构体变量名;
   (3)直接定义结构体变量(没有结构体名的无名结构体):struct  {类型标识符 成员名;} 结构体变量名; 这样没有结构体名的,只能这样定义一次,也就是说不能再向(1)那样在后面随意定义了  
5、结构体变量的引用:
   (1)结构体变量不能整体引用,只能引用变量成员
   (2)结构体变量引用方式:结构体变量名.成员名
   (3)例如 struct 结构体名 {类型标识符 成员1;} 结构体变量1,结构体变量2;这样,可以把一个变量赋值给另一个变量,如 结构体名.变量1=结构体名.变量1;
6、结构体变量的初始化:
   (1)形式一:struct 结构体名 { 类型标识符  成员名;} ; struct 结构体名 结构体变量={初始数据};
   (2)形式二:struct 结构体名 { 类型标识符  成员名;} 结构体变量={初始数据};
7、结构体数组:
   (1)结构体数组就是,用一个数组来包括所有的结构体变量,数组的每个元素,就是一个结构体变量;
   (2)形式一:struct 结构体名 { 类型标识符  成员名;} ; struct 结构体名 结构体数组
   (3)形式二:struct 结构体名 { 类型标识符  成员名;} 结构体数组;
   (4)形式三:struct { 类型标识符  成员名;} 结构体数组;
8、结构体数组初始化:在前面的基础上加上初始变量组的各个成员
   (1)形式一:用大括号将各个变量的一组成员括起来:结构体名 结构体数组名[]={ {成员1值1,成员2值1},{成员1值2,成员2值2}; 
   (2)形式二:如果不加括号分开,那么按顺序排:结构体名 结构体数组名[]={成员1值1,成员2值1,成员1值2,成员2值2};
9、结构体和指针
   (1)指向结构体变量的指针
      a.定义形式:struct 结构体名 *结构体指针名;
      b.使用结构体指针变量引用成员形式:(*结构体指针名).成员名 或者 结构体指针名->成员名  或者  结构体变量名.成员名
   (2)指向结构体数组的指针
   (3)用指向结构体的指针作函数参数
      a.用结构体变量的成员作参数----值传递
      b.用指向结构体变量或数组的指针作参数----地址传递
      c.用结构体变量作为参数------多值传递,效率低
*/
View Code

 

二、typedef语法基础:

技术分享
/*
typedef说明:
1、typedef是C语言的关键字,作用是为一个数据类型定义一个新的数据类型,它并没有新建一种新的数据类型,只是把原有数据类型换了一个名字而已
2、用法一:为现有的数据类型定义同义词,便于记住和归类使用等,格式:typedef  原有数据类型  定义新的名字;定义之后,可以在任何需要使用原数据类型处,用新的名字替换;例如:typedef int size; 以后就都可以用size来代替int;
3、用法二:用来掩饰复合类型:
           a.数组,格式:typedef 原数据类型名  数组; 例如:typedef char line[81];以后line a, b; 就等价于 char a[88],b[88];
           b.指针,格式:typedef const 原数据类型名  指针 ;例如:typedef char *pstr; 以后使用pstr就相当于char *;(只要是指针生命typedef,不管什么时候都需要在typedef中加一个const,以使得该指针本身是常量,而不是对象。
4、用法三:在链表(struct)中的应用:格式:typedef struct {类型标识符,成员名 }结构名别名;例如:typedef struct { int a; int b;} MY_TYPE; 这样声明之后,以后如果需要定义结构就直接MY_TYPE tmp;tmp是满足这个结构的一个变量;
           如果没有家typedef的话,后面直接定义肯定不能省略结构体名,定义的时候struct 结构体名 变量名,这样的形式来定义了
*/
View Code

 

常见关键字用法(struct,typedef)

原文:http://www.cnblogs.com/liubo118/p/4270395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!