当前位置:网站首页>C语言整理(待更新)
C语言整理(待更新)
2022-07-07 01:26:00 【王小希ww】
C语言整理(待更新)
Note:根据 CSDN C语言技能树 整理的题目;初衷是因为C语言相对于Java,Python更加简洁,没有那么多花里胡哨的语言特性,用来练习算法题再合适不过了。
文章目录
一、C语言的发展
二、数据类型
- 变量类型, 生命周期 和 作用域
- 常量2种类型(数值和字符) 和 定义(#define和const)
Note:常量也可以是函数表达式,比如#define MAX(a,b) ((a > b) ? a : b),参考关系运算符(判断区间是否重叠) - 数据类型分类(原生,派生,用户自定义)
Note:- C语言没有bool,string类型;基本类型包括字符型,浮点型,整型 和 空类型;派生类型包括数组,指针和函数类型;用户自定义类型包括枚举,结构体和联合体类型。
- C++的基本类型则在C语言基本类型基础上,增加了bool类型。
三、运算符与表达式
- 赋值运算符(注意多个变量同时赋值的问题)
- 算数运算符(++i < 100 和 i++ < 100 的区别)
- 关系运算符
- 逻辑运算符(判断是否为闰年,||和&&的使用)
- 逗号运算符,运算符优先级与求值顺序(逗号运算符),可参考C语言逗号表达式在for循环语句中的使用
Note:逗号运算符常用在for循环头部初始化或递增多个变量- 注意变量的处理顺序
- 从左往右开始算
- 整个逗号表达式的值为其中最后一个子表达式的值。
- sizeof运算符(输出 操作数所占空间 的 字节大小),可参考c语言数据类型字节大小 和 精度
Note:sizeof在使用的时候看上去像是一个函数(因为其后面有一对小括号),但他却是一个运算符。他的使用方法有以下3种:- a)
sizeof(变量名)。 - b)
sizeof(数据类型名)。 - c)
sizeof 变量名。
- a)
四、语句与控制流
- 三个数从小到大排序输出(swap原地交换)
- 判断三角形的类型(注意判断条件的先后次序)
- switch-case分数评级
- 九九乘法表打印(9行9列)
- 最大公约数(m)和最小公倍数(q)(ab = mq),可参考辗转相除法求最大公约数
五、函数与程序结构
- 函数的声明和定义(C语言 关注方法的定义相对于调用语句的位置)
Note:其实 python 也一样关注方法的定义相对于调用语句的位置,只不过没有函数声明,只有函数定义。 - 形参与实参(注意swap时实参是引用类型,即传入地址,而形参是指针类型)
- 打印函数调用顺序(C语言(编译)必须通过main函数入口才可以执行程序,python(解释)则不需要)
- 上楼梯问题(C语言模块化设计),可参考C语言模块化编程
- 内部函数(static)和外部函数(extern),可参考C语言中 static 和 extern 的用法详解,C语言关键字static与extern的详细解释
Note:- 头文件(
.h)需通过#define和#endif定义变量和函数 - 源文件可以分成多个
.c文件,每个.c文件可以对应一个.h文件,该.h文件包含.c文件的变量或函数声明。 - 全局变量默认是带
extern,即在整个源程序中 所有 源文件 里都可以访问和修改 static如果修饰全局变量,则会 对其他源文件隐藏该全局变量
- 头文件(
六、数组
七、指针
八、字符串
九、结构体
十、联合体与枚举类型
十一、位运算
十二、预处理器
十三、文件
十四、存储管理
十五、标准函数库
边栏推荐
- 【SQL实战】一条SQL统计全国各地疫情分布情况
- Deep clustering: joint optimization of depth representation learning and clustering
- VScode进行代码补全
- 进程间通信之共享内存
- Jcmd of JVM command: multifunctional command line
- Qtthread, one of many methods of QT multithreading
- JVM命令之 jstack:打印JVM中线程快照
- jvm命令之 jcmd:多功能命令行
- 蚂蚁庄园安全头盔 7.8蚂蚁庄园答案
- Jinfo of JVM command: view and modify JVM configuration parameters in real time
猜你喜欢

【FPGA教程案例13】基于vivado核的CIC滤波器设计与实现

ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略

Add salt and pepper noise or Gaussian noise to the picture

Introduction to the extension implementation of SAP Spartacus checkout process

Detailed explanation of platform device driver architecture in driver development

SubGHz, LoRaWAN, NB-IoT, 物联网

@Detailed differences between pathvariable and @requestparam

关于STC单片机“假死”状态的判别

软件测试知识储备:关于「登录安全」的基础知识,你了解多少?

Nvisual network visualization
随机推荐
ML's shap: Based on the adult census income binary prediction data set (whether the predicted annual income exceeds 50K), use the shap decision diagram combined with the lightgbm model to realize the
Flask 1.1.4 werkzeug1.0.1 analyse du code source: processus de démarrage
Opensergo is about to release v1alpha1, which will enrich the service governance capabilities of the full link heterogeneous architecture
当我们谈论不可变基础设施时,我们在谈论什么
改变ui组件原有样式
[云原生]微服务架构是什么?
SubGHz, LoRaWAN, NB-IoT, 物联网
Flask1.1.4 werkzeug1.0.1 source code analysis: start the process
postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license
go-microservice-simple(2) go-Probuffer
CMD permanently delete specified folders and files
Question 102: sequence traversal of binary tree
Go语学习笔记 - gorm使用 - 原生sql、命名参数、Rows、ToSQL | Web框架Gin(九)
[FPGA tutorial case 13] design and implementation of CIC filter based on vivado core
JVM命令之- jmap:导出内存映像文件&内存使用情况
生活中的开销,怎么记账合适
JMeter's own functions are not enough? Why don't you develop one yourself
3428. 放苹果
SQL Server 2008 各种DateTime的取值范围
[daily training -- Tencent selected 50] 292 Nim games