当前位置: 首页 > news >正文

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

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.lryc.cn/news/2734.html

相关文章:

  • 雅思经验(十一)
  • C++中的智能指针
  • LSTM已死,Transformer当立(LSTM is dead. Long Live Transformers! ):下
  • OJ万题详解––[NOIP2004 提高组] 合并果子(C++详解)
  • MySQL-字符集和比较规则
  • 微搭低代码从入门到精通12-网格布局
  • 【c语言】二叉树
  • 六、Java框架之SpringBoot
  • 「Python|环境安装|Windows」如何在Windows上安装Python环境?
  • 人工智能轨道交通行业周刊-第33期(2023.2.6-2.12)
  • 五分钟看懂Java字节码:极简手册
  • C++ 类与对象(下)
  • Java基础——I/O
  • 关于@hide的理解
  • 使用python加密主机文件几种方法实现
  • 西湖论剑 2023 比赛复现
  • 微信小程序更换管理员/重置管理员
  • 企业进存销管理系统
  • C++入门
  • 视频知识点(20)- H264码流如何在SPS中获取宽高信息?
  • 鲜花数据集实验结果总结
  • ElasticJob-Lite架构篇 - 认知分布式任务调度ElasticJob-Lite
  • 【直击招聘C++】2.6 对象之间的复制
  • 学了这么久python,不会连自己啥python版本都不知道吧?
  • Revive:从间谍软件进化成银行木马
  • Python 之 NumPy 简介和创建数组
  • 与六年测试工程师促膝长谈,他分享的这些让我对软件测试工作有了全新的认知~
  • 裕太微在科创板上市:市值约186亿元,哈勃科技和小米基金为股东
  • 毕业后5年,我终于变成了月薪13000的软件测试工程师
  • 实践指南|如何在 Jina 中使用 OpenTelemetry 进行应用程序的监控和跟踪