c语言简单类的构造,C语言关于构造类型的简单概括

1,结构体的构造声明如下;

struct 结构体类型        //结构体类型常常首字母大写;

{  结构体成员;      //结构体成员的引用格式为: 结构体变量.成员

}结构体变量;             //如果是结构体数组,变量为数组名[结构体个数]

1.1,结构体的使用:

1.1.1:声明结构体;

1.1.2:定义初始化结构体;

1.1.3:调用或赋值或使用结构体指针引用;

struct Student                                   //使用struct关键字声明一个Student类型结构体;

{  char Name[20];                         //字符串结构体成员Name;

char Sex[20];                             //字符串结构体成员Sex;

int Age;                                      //整型结构体成员Age;

} student1={"胡犀牛","男",23};         //定义结构体变量student1,并且初始化;

struct Student student2={...};             //单独定义结构体变量并且初始化;

printf("姓名:%s",student1.Name );   //结构体变量的调用: 结构体变量.成员

1.1.4:如果结构体的成员还是结构体,则需要继续使用成员运算符引用变量;

1.1.5:成员运算符的优先级max,结构体成员与普通变量使用方法一样;汉字属于字符串;

1.1.6:结构体声明可以在主函数内也可以在主函数外,因为声明不是函数定义;

1.1.7:如果一个结构体成员还是结构体,初始化或者调用的时候是使用结构体内的结构体的成员;要层级调用;

1.2,结构体数组;

表示数组中的元素为结构体类型的数组;(兼具结构体和数组的语法特点;)

声明结构体数组时的变量格式为:数组名[数组个数]

调用结构体数组时的变量格式为:数组名[数组下标].成员

1.3,结构体指针;

表示指向结构体变量起始地址的指针;

变量定义为:结构体类型  *指针名字;

访问结构体成员的两种方式为:

1.3.1:(*指针).成员   //指向指针地址得到结构体变量,等价于  "变量.成员" 的调用;

1.3.2:  指针=&结构体变量;

指针->结构体成员;  //定义一个指针,然后把结构体的地址传递给指针,然后使用结构体指向符指向引用成员;

1.3.3:结构体变量.成员      =    (*结构体指针).成员      =     结构体指针->成员

1.3.4:  (1)指针->成员:表示结构体指针指向结构体成员的值;

(2)指针->成员++:表示指针指向成员的值,使用后值加1;   //没有括号自加运算操作的是成员值;

(3) ++指针->成员:表示指针指向成员的值,值加1后使用;

(4)(++指针)->成员:表示指针先指向下一个成员的地址,然后指向成员的值;  //指针加括号自加运算操作的是指针;

(5)(指针++)->成员:表示指针指向成员的值,使用后指针指向下一个成员的值;

1.4,指向结构体数组的指针;

使用方法和结构体指针一样;数组指针自加运算是指向下一个结构体数组成员;

1.5,结构体与函数参数的关系;

1.5.1;使用结构体成员作为函数实参传递;(值传递,与普通变量使用方法一样)

1.5.2;使用结构体变量作为函数实参传递;(值传递,传递的是结构体变量的所有值,值的参数传递是单向)

1.5.3;使用指向结构体变量的指针作为函数实参传递;(地址传递,传递的是结构体变量的首地址,参数值双向传递)

2,共用体;

含义:由关键字union定义,类型为DataUnion; 把几种不同类型的变量存放在同一段内存中,所以同一时刻的共用体变量指向同一个地址内的值;

用法:定义和引用与结构体相同,但是共用体的初始化只要初始化一个值就可以了;

声明:

union DataUnion  //声明一个DataUnion类型的共用体;

{  成员;         //成员列表,存入同一个地址中;

}变量;                //可以顺便定义变量并初始化,也可以单独定义;

定义:

union DataUnion variable;  //定义一个共用体类型的变量variable;

引用:共用体对象.成员

3,枚举;使用enum关键字;

枚举类型包含一组相关枚举标识符;每个标识符一一对应一个整数值常量,称之为枚举常量;

枚举类型初始化的时候我们可以只初始化某个特定的标识符,然后剩下的标识符依次加一;

4,typedef  声明新类型的关键字; 就是将已有的类型声明出新的名字;

原文:https://www.cnblogs.com/caesura-k/p/9807634.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值