当前位置: 首页 > 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 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 大数据之Hadoop
  • spark数据清洗练习
  • ChatGPT 这个风口,普通人怎么抓住:比如APP集成ChatGPT,公众号集成ChatGPT...
  • 谷粒商城-品牌管理-JSR303数据校验
  • Lesson 6.5 机器学习调参基础理论与网格搜索
  • Servlet实现表白墙
  • java高频面试题(2023最新)
  • chatGPT接入个人微信教程(国内可用)
  • splay
  • 这是从零在独自开开发,将是副业赚钱最好的平台!
  • 基于 oss 框架的音频驱动
  • 基于matlab使用机器学习和深度学习进行雷达目标分类
  • LeetCode - 1109 - 航班预定统计
  • Rust编码的信息窃取恶意软件源代码公布,专家警告已被利用
  • typora每次复制文档都要附带图片文件夹?学会配置gitee图床
  • 离散数学 课时一 命题逻辑的基本概念
  • Typescript - 类型守卫(typeof / in / instanceof / 自定义类型保护的类型谓词)通俗易懂详细教程
  • 【Android -- 每日一问】现在 Android 怎么学?学什么?
  • 蔚来日常实习收获
  • 【C++入门】命名空间,输出输入,缺省参数,函数重载
  • 尹锡悦涉嫌发动内乱案第二次庭审21日举行,媒体获准拍摄
  • 北京理工大学:教师宫某涉嫌师德失范,暂停其一切职务活动
  • 影子调查丨义门陈遗址建筑被“没收”风波
  • 2025年世界互联网大会亚太峰会人工智能大模型论坛举行
  • 抵制饭圈极端应援,发倡议书还不够
  • 守护体面的保洁员,何时能获得体面?|离题