1.2(完结)C语言进阶易忘点速记

news2024/11/18 16:50:06

1.大端存储:高权位数字放在低地址处,低权位数字放在高地指处。(以字节为单位)

2.小端存储:低权位数字放在低地址处,高权位数字放在高地址处。(以字节为单位)

3.变量(char类型)进行运算的时候一定要注意整形提升与截断,最后要注意以什么形式打印出来。

4.v=5.5=101.1=1.011*2^2=(-1)^0*1.011*2^2

                                                         S    M          E

5.浮点数的存储

24101f2f08914ad391f659cc2a642292.jpg

21520fa5d0ca424fbec5972ecc47c93f.jpg 

bc4fb23e8e4745f5800c611620d81695.jpg 

6.数组指针的用法

86f08c5d24564ef59f9f5feba91b8b78.jpg

7.数组指针的类型

5b3f413c0daa453e986e702ceeacead0.jpg

8.指针数组和数组指针

9d45b3265839417fb87bc684bdbbe1cc.png

2fff003223d444f99802e2b92c344509.jpg 

9.一维数组传参

9319b234c4d444ac85f4d562c2a6dd59.jpg

10.二维数组传参

347c405d85934c75a6071ec1c63794e1.jpg

11.二级指针传参

5ddb0bb20b664066b5196e07cbf16f1e.png

12.函数指针调用函数(*可以写也可以不写)

8c0b4483653b4707b7980f20899b609e.jpg

13.两段有趣的代码

3f7e20f00ffd47669ae6e4cf7d20829f.jpg

a940432ef81d4215b7860bb04f22f84e.jpg 

5ef4d00beeea48a0ab91cf4096d62726.jpg 

14.函数指针数组

dcd621bd386c48ffa1eadf1a0d2e6c66.jpg

15.函数指针数组在特定条件下简化switch case语句。

16.函数指针数组指针

742db39c6e484ef6a1a495e8249a7a4b.jpg

17.回调函数。

18.qsort

0e407658879d46c5bbde499304af8b5d.jpg

8cb31b8209504987af3b951471ba760b.jpg 

19.一维数组sizeof的细节问题

a9bc7c48903e453192841e1c55b8fa7a.jpg

 

20.字符数组的细节问题

ecb8b79fa1f544199254251bdd8ac554.jpg

 

21.字符串数组的细节问题

a662bf1b058c4d2fbe55defadb780c9d.jpg

 

22.字符串指针的细节问题

a9d4efb64fda4bb4999c3527a3fdf351.jpg

 

23.二维数组的sizeof的细节问题

89630953d80e4fa4877a518cb7c046c1.jpg

 

24.习题1

3cb065b261b34873bae427a952aadda7.png

 

25.习题2

5a44e0fbe4b4421e8050973ab715c0a9.jpg

 

26.习题3 

afc7e83fc9224bb6817739b0776fb007.jpg

 

27.习题4

d4883c7ebe4d4324b3ce90964d5d751e.jpg

 

28.习题5

6ee1031a22314d659f67d2df0fe7ef39.jpg

29.第7题

971396c1a441430b8d880f22ef521199.png

 

30.第8题

5d9c9e0cb8a2494790335f8ddd37ffbe.jpg

 

31.两个size_t的数相减仍是size_t类型(不会出现负数),注意库函数返回值的使用。

28bd594b1d6e4b1990be9d2012085445.png

1c209b1b4099481cbd8e2b95b1b72692.jpg 

 

32.神奇的函数(strtok)

5cec56c2f76c4ce391a9c635c3bd24a2.jpg

33.strerror(errno要包含头文件errno.h)

0d662021d29b400a975e33471b1b4fac.png

008675ce64b7453988166aa44c1e93eb.jpg 

 

34.perror头文件为stdio.h

e5f6c1f317664b79b2d9c765414fd9e9.jpg

 

35.一些字符函数

694c8b18c894481fb8bf02f2c10de154.jpg

 

36.字母大小写转换函数

e6e0147af15f4aa9b4518f2158bb6319.jpg

089a74a7105c4abbbabf776f9a9060ca.jpg 

 

37.memmove理论上是memcpy的升级版(可以自己拷贝自己)。

38.匿名结构体类型在类型创建好了之后直接创建变量,只能用一次。两个完全相同的匿名结构体类型,编译器认为他们的类型是不一样的。

39.结构体可以乱序初始化。

struct 结构体名字 变量名 = {.结构体内的变量名 = 赋的值, …};

40.结构体的内存对齐。

a.结构体的第1个成员,对齐到结构体在内存中存放位置的零偏移处。

b.从第2个成员开始,每个成员都要对齐到一个对齐数整数倍数。(数组按每个元素大小的计算)(对齐数:结构体成员的自身大小和默认对齐数的较小值,vs中默认对齐数是8,gcc中没有默认对齐数)

c.结构体的总大小,必须是所有成员的对齐数中最大的整数倍。(数组按每个元素大小的计算)(包含嵌套结构体成员中的对齐数)

d.如果结构体中嵌套了结构体成员,要将嵌套的结构体成员对齐到自己的成员中最大对齐数的整数倍处。

41.offsetof(struct s1, 结构体内的变量);

返回该变量的偏移数。

头文件stddef.h

本质上是个宏。

42.使用结构体的时候为了节省空间,尽量把占用空间小的结构成员放在一起。

43.vs修改默认对齐数

98bad8bc8a3d412bb6ec47ecd84cd707.png

730ec9e61f384b5d95c47910df001eee.png 

 

44.位段,成员类型必须是整型,并且所有成员必须是同一种类型,只能放在结构体里使用。

fc71b29d020a4e418eaa3e805eec8f18.png

03481e6b3a494c3dbd8ddf0f7f557eba.jpg 

4173b5c23c64413db4f903cfcf9dc54b.jpg 

45.枚举常量

0ad085000c2642a0b38cb44f02957e72.png

 

在使用switch case语句的时候,为了增加代码的可阅读性,建议使用枚举常量。枚举常量的大小是4。

46.联合体需要内存对齐。

47.malloc

9a2be3a990eb4a2a8f917da13df70857.png

48.malloc和calloc的区别。

 

e6da4c999c484af188cce57b034bb4a9.png 

49.realloc

 

c83a8acf80c44392a2fddbb85deb6f39.png 

 

50.如果要用realloc实现malloc的功能,第1个参数传入空指针(NULL)。

51.在函数内进行动态内存申请,如果没有释放,一定要写上注释。及时释放内存,总之,free函数一定要及时执行(有的时候虽然有这条语句,但是并没有执行,可能被跳过了)。

52.习题1

8748dda2209e417385d1781a01f304bf.jpg

 

53.习题2

f3809ad79cc049e391ea2257e9f8eca8.png

 

54.柔性数组,c99标准,结构体中的最后一个元素允许是未知大小的数组。(arr[] 或arr[0])

cb9f73fc7fe74e5899b8509310440c01.jpg

f3cca067b2e34902963befb0e257a30e.png 

 

55. C语言文件

8145a4a173b740989a8dc59bb14091ab.jpg

6f399a556ea14ac8902f87467753d845.jpg 

 

如果以只写的形式打开一个有内容的文件,原来的内容会被清空。

56.文件扩展名一定要展开。

57.文件的顺序读写。

c7904cfa46da420eb08ec0c2f4e57090.png

 

写入:fprintf,fputc,fputs,fwrite

读取:fscanf,fgetc,fgets,fread

58.sprintf,把一个格式化的数据,转化成字符串形式,放到一个字符数组中去(把格式化的数据转化成字符串)。

59.sscanf,从一个字符串中还原出一个格式化的数据。

60.fseek

c9b5333b361a45e6958abfd42157d87f.jpg

 

61.ftell

1d42438f094b494e865482a5625f653c.jpg

 

62.rewind

912df7143f384bfb98954bc100c3df18.jpg

 

63.feof

f8d57cb4f04d4a55a995c11314dc7026.jpg

dd592690e09c470ab07e3bc1b59f2ad4.png 

 

64.缓冲区可以被修改大小,(setbuf)了解一下就可以了。

65.文本文件(格式化文件)和二进制文件的区别。

70e7d790540845ae8658483c268dd005.png

66.代码翻译

21733ec0eab84020b4f1de010b936106.jpg

 

67.预定义符号

a8a14850b77a4244a6f989c9edb62613.jpg

 

68.#的作用

2cb21faa54a44fd69c00a383a3fe763f.jpg

efffbf47818241958e1545caac50ddeb.jpg 

 

69.##的作用,把两端的符合拼接成一个。

1a21c42121544cc9985d2ed16e850917.jpg

 

70.宏参数有时带有副作用

45176f0f692a4226b16f3d9a1f7d2642.jpg

 

71.宏可以传类型

2866e1b769224cdfa131cd2c11d79c7b.jpg

 

72.宏和函数的对比

049ca73b1f2648b7a38c748f1d156e5d.jpg

3437a9dc0d674a54be0e6c805097eb4f.jpg 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/338509.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

五、Java框架之Maven进阶

黑马课程 文章目录1. 分模块开发1.1 分模块开发入门案例示例:抽取domain层示例:抽取dao层1.2 依赖管理2. 聚合和继承2.1 聚合概述聚合实现步骤2.2 继承 dependencyManagement3. 属性管理3.1 依赖版本属性管理3.2 配置文件属性管理(了解&#…

Easy-Es框架实践测试整理 基于ElasticSearch的ORM框架

文章目录介绍(1)Elasticsearch java 客户端种类(2)优势和特性分析(3)性能、安全、拓展、社区(2)ES版本及SpringBoot版本说明索引处理(一)索引别名策略&#x…

leaflet 解决marker呈现灰色边框的问题

第052个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet示例中处理marker外面有灰色边框的问题,请看未处理会后的图片。 处理后的结果非常满意,不再显示灰色边框。处理方法参考源代码。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意…

华为认证常见技术问答整理:什么是Datacom认证?

一、关于Datacom认证Q:什么是Datacom认证?A:Datacom,即DatacomCommunication的缩写,中文为“数据通信”,属于ICT技术架构认证类别(华为认证包含ICT技术架构认证、平台与服务认证和行业ICT认证三…

内网渗透(十七)之内网信息收集-powershell收集域内信息和敏感数据定位

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布

原文网址:不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布_IT利刃出鞘的博客-CSDN博客 简介 本文介绍不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布。 升级服务器的应用时,要停止掉老版本服务,将程序上传…

(深度学习快速入门)第五章第三节:DCGAN人脸图像生成

文章目录一:CelebFaces Attribute(CelebA)数据集介绍二:模型结构三:代码编写(1)参数配置(2)数据集加载脚本(3)模型脚本(4)…

Kafka 副本

kafka 副本的基本信息 kafka副本作用提高数据可靠性kafka副本个数默认1个,生产环境中一般配置为2个,保证数据可靠性;但是过多的副本会增加磁盘存储空间、增加网络数据传输、降低kafka效率。kafka副本角色副本角色分为Leader和Follower。kafk…

【算法基础】前缀和与差分

😽PREFACE🎁欢迎各位→点赞👍 收藏⭐ 评论📝📢系列专栏:算法💪种一棵树最好是十年前其次是现在1.什么是前缀和前缀和指一个数组的某下标之前的所有数组元素的和(包含其自身&#x…

初学Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制&…

Linux内核启动(3,0.11版本)内核启动完成与进入内核main函数

这一部分是在讲解head.s代码,这个代码与bootsect.s和setup.s在同一目录下,但是head.s程序在被编译生成目标文件后会与内核其他程序一起被链接成system模块,位于system模块的最前面开始部分。system模块将被放置在磁盘上setup模块之后开始的扇…

论文阅读:《Evidence for a fundamental property of steering》

文章目录1 背景2 方法2.1 方向盘修正行为标识2.2 数据2.3 数据拟合3 结果3.1 速率曲线3.2 恒定的转向时间3.3 基本运动元素的叠加3.4 其他实验4 讨论5 总结(个人)1 背景 这篇短文的主要目的是去阐述“转方向盘”这一行为的基本性质:方向盘修正…

人大金仓数据库索引的应用与日常运维

索引的应用 一、常见索引及适应场景 BTREE索引 是KES默认索引,采用B树实现。 适用场景 范围查询和优化排序操作。 不支持特别长的字段。 HASH索引 先对索引列计算一个散列值(类似md5、sha1、crc32),然后对这个散列值以顺序…

SpringBoot+Vue实现师生健康信息管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

第二章-线程(3)

线程一、线程的定义二、线程的实现一、线程的定义 线程: 线程是进程中的一个实体,是系统独立调度和分派的基本单位。 进程是资源的拥有者,线程是系统独立调度和分配的基本单位。 进程与线程的比较: 调度:线程调度快…

Python 的Tkinter包系列之七:好例子补充2

Python 的Tkinter包系列之七:好例子补充2 英汉字典(使用文本文件记录英语单词和解释)、简单的通信录(使用SQLite数据库记录人员信息) 一、tkinter编写英汉字典 先看效果图: 词典文件是一个文本文件&…

python自动发送邮件实现

目录1 前言2 准备工作2.1 电子邮件的基础知识。2.2 python邮件库2.3 邮箱设置3 python实现邮件自动发送3.1 SMTP()和send()方法介绍3.2 python实现实例参考信息1 前言 python功能强大,可以实现我们日常办公的很多任务。诸如批量处理word,excel,pdf等等文件&#xf…

事务基础知识与执行计划

事务基础知识 数据库事务的概念 数据库事务是什么? 事务是一组原子性的SQL操作。事务由事务开始与事务结束之间执行的全部数据库操作组成。A(原子性)、(C一致性)、I(隔离性)、D(持久…

1625_MIT 6.828 stabs文档信息整理_下

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 继续之前的学习笔记,整理一下最近看过的一点stabs资料。 这一页中有一半的信息是Fortran专用的,直接跳过。参数的符号修饰符是p&#xff0c…

【webpack】webpack 中的插件安装与使用

一、webpack 插件的作用 通过安装和配置第三方的插件,可以拓展 webpack 的能力,从而让 webpack 用起来更方便。最常用的 的webpack 插件有如下两个: 1.webpack-dev-server(实时打包构建) 类似于 node.js 阶段用到的 no…