当前位置:网站首页>鹏哥C语言第七节课总结
鹏哥C语言第七节课总结
2022-07-26 10:36:00 【竹某】
一.结构体
结构体是C语言用于处理复杂对象的。结构体本质上是一种自定义类型。
#include <stdio.h>
#include <string.h>
enum Sex {
MALE,
FEMALE
};
struct Student {
char name[10];//成员
int age;
Sex sex;
};//定义结构体的语法,作用是提供了具有特定成员的新的数据类型
int main() {
//定义和初始化结构体变量的方法
Student Tom = {"Tom",19,MALE};//结构体是一种新的数据类型,可以用于定义复杂对象(变量)
printf("%s\t%d\n",Tom.name,Tom.age);//通过.来使用结构体变量的成员
Student* ptrTom = &Tom;//由于结构体是一种新的数据类型,自然也可以使用指针
ptrTom->age = 20;//通过结构体变量指针使用结构体变量的成员时,借助->
//ptrTom->name = "Sony"; C语言中的字符串不能如此赋值
strcpy(ptrTom->name,"Sony");
printf("%s\t%d\n", Tom.name, Tom.age);
}区分三个概念:结构体,结构体变量,结构体变量指针。
结构体实质上是一种新定义的数据类型,用于处理复杂对象。(类似于Java中类的概念,只不过没有方法)
结构体变量实质上是我们需要处理的具体的复杂对象。(类似于Java中对象的概念,只不过没有方法)
结构体变量指针是指向结构体变量的指针。通过这个指针我们可以通过*解引用符来取得结构体变量,或是通过->来取得结构体变量的成员。总之和基本数据类型的指针使用类似,除了成员这方面外。
二.C语言的32个关键字
| 关键字 | 说明 |
|---|---|
| auto | 声明自动变量,与变量的生命周期相关 |
| short | 声明短整型变量或函数,基本数据类型 |
| int | 声明整型变量或函数,基本数据类型 |
| long | 声明长整型变量或函数,基本数据类型 |
| float | 声明浮点型变量或函数,基本数据类型 |
| double | 声明双精度变量或函数,基本数据类型 |
| char | 声明字符型变量或函数,基本数据类型 |
| struct | 声明结构体变量或函数 |
| union | 声明共用数据类型 |
| enum | 声明枚举类型 |
| typedef | 用以给数据类型取别名,注意和define区别,define不是关键字 |
| const | 声明只读变量 |
| unsigned | 声明无符号类型变量或函数 |
| signed | 声明有符号类型变量或函数 |
| extern | 声明变量是在其他文件正声明 |
| register | 声明寄存器变量 |
| static | 声明静态变量 |
| volatile | 说明变量在程序执行中可被隐含地改变 |
| void | 声明函数无返回值或无参数,声明无类型指针 |
| if | 条件语句 |
| else | 条件语句否定分支(与 if 连用) |
| switch | 用于开关语句 |
| case | 开关语句分支 |
| for | 一种循环语句 |
| do | 循环语句的循环体 |
| while | 循环语句的循环条件 |
| goto | 无条件跳转语句,不建议使用 |
| continue | 结束当前循环,开始下一轮循环 |
| break | 跳出当前循环 |
| default | 开关语句中的“其他”分支 |
| sizeof | 计算数据类型长度 |
| return | 子程序返回语句(可以带参数,也可不带参数)循环条件 |
define不是关键字,请注意
三.其他的一些零散的知识点
边栏推荐
- 抽象工厂及其改进示例
- 12 复制对象时勿忘其每一个成分
- Application of.Net open source framework in industrial production
- Uniapp uses the simple method signalr (only for web debugging, cannot package apps)
- cavans实现静态滚动弹幕
- Unit test, what is unit test and why is it so difficult to write a single test
- Database functions
- vscode上使用anaconda(已经配置好环境)
- js,e.pageX、pageY模态框拖动
- Centos8 (liunx) deploying WTM (asp.net 5) using PgSQL
猜你喜欢

.NET 开源框架在工业生产中的应用

Okaleido ecological core equity Oka, all in fusion mining mode

SAP ABAP 守护进程的实现方式

centos8(liunx)部署WTM(ASP.NET 5)使用pgsql

Tradingview 使用教程
![[Halcon vision] morphological expansion](/img/ce/abaca036fce5b67dfe6ac361aecfea.png)
[Halcon vision] morphological expansion

Navicat15 MySQL (centos7) connected to local virtual machine

el-table实现可编辑表格
![[leetcode每日一题2021/2/14]765. 情侣牵手](/img/be/8639a05c733638bf0b3fdeb11abccf.png)
[leetcode每日一题2021/2/14]765. 情侣牵手

Dry goods likeshop takeout order system is open source, 100% open source, no encryption
随机推荐
STM32 Alibaba cloud mqtt esp8266 at command
事务的传播性propagation
超图 影像 如何去除黑边(两种方法)
Perfect / buffer motion framework in sentence parsing JS (for beginners)
datav漂亮数据屏制作体验
[leetcode每日一题2021/2/13]448. 找到所有数组中消失的数字
.NET操作Redis sorted set有序集合
Parallelism, concurrency and several directions for high concurrency optimization
Tradingview tutorial
.NET5WTM(ASP.NET Core) PGSql开箱操作
404页面和路由钩子
7-25 0-1背包 (50分)
QRcode二维码(C语言)遇到的问题
[Halcon vision] image filtering
Centos8 (liunx) deploying WTM (asp.net 5) using PgSQL
比较器(Comparable与Comparator接口)
[Halcon vision] affine transformation
[leetcode每日一题2021/4/23]368. 最大整除子集
algorithm
[Halcon vision] morphological corrosion