目录
🏀1.三大自定义类型作业讲解
知识点模糊?自己去补一下哈,《三大自定义类型传送门》
🥅习题1:
❤️对于A的大小
⭐️先找对齐数,分别是4、2、1、4;从0开始,0-3是a;4-5是b;6和7不是4的倍数跳过,8-11是c;12是d;所以最终结果就是0-12占13个字节,但不是4的倍数,所以最终结果是:16
❤️对于B的大小
⭐️先找对齐数,分别是4、2、4、1;从0开始,0-3是a;4-5是b;6是c;7不是4的倍数跳过,8-11是d;所以最终结果就是0-11占12个字节,是4的倍数,所以最终结果是:12
🥅习题2:
❤️对于stT1的大小
⭐️总共占了0-11,12个字节,是4的倍数,最终结果就是:12
❤️对于stT2的大小
⭐️总共占了0-11,12个字节,是4的倍数,最终结果就是:12
❤️对于stT3的大小
⭐️总共占了0-15,16个字节,是4的倍数,最终结果就是:16
🥅习题3:
❤️这里主要考察两个知识点:位段和宏
⭐️对于位段,都是char类型,所以创建时,是一个字节一个字节(8个bit位)进行创建,才开始创建一个字节8个bit位,第一次用掉4个,还剩4个bit位;第二次用掉2个,还剩2个bit位;第三次用一个字节,剩余的2个bit位不够用丢弃,重新创建一个字节;第四次重新创建一个字节,但是只使用了1个bit位;所以最终就占用了3个字节。
⭐️最终结果就是:3*2+3=9
🥅习题4:
❤️考的是位段的存储形式
⭐️在VS中,位段中的成员在内存中从右向左分配(从低地址到高地址分配)!
⭐️在VS中,多余的比特位不够用,是直接舍去,开辟新的空间后直接用新的!
⭐️十六进制的形式打印:
🥅习题5:
❤️考的是联合体的存储形式
⭐️联合变量的大小,至少是最大成员的大小;是14?但是14不是最大对齐数4的倍数,所以最终结果是:16
🥅习题6:
❤️考的是联合体的存储形式和大下端问题
⭐️占用同一块内存,并且刚好都是占用2个字节;第一个字节放十六进制39;第二个字节放十六进制38;随着下标的增长,地址是由低到高的,所以左边39是低地址,右边38是高地址;低地址放到右边,高地址放到最左边。
🥅习题7:
❤️考的是枚举
⭐️不赋值默认从0开始,所以enumA = Y1为1;B1是从255后面数量为,所以enumB = B1为257
🏀2.动态存储
知识点模糊?自己去补一下哈,《动态存储和柔型数组》
🥅习题1:(难点)
❤️atoi的使用
⭐️把一个字符串转换成整型
❤️atoi的模拟实现(先看一篇大概理清思路)
🏀3.文件的打开和关闭作业
知识点模糊?自己去补一下哈,《文件操作》
❤️getchar只能适用于标准输入流(键盘);并不适用于所有流
🥅习题1:
❤️程序的解读,考察常用的几个文件操作函数理解
🥅习题2:
❤️sscanf是把字符串中读取格式化的数据;sprintf是把格式化的数据写到字符串中
❤️(编译预处理)的作用是将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译生成目标代码;三个步骤:预编译(预处理)、编译、汇编
❤️在编辑、预处理、编译、链接等阶段最终生成的可执行程序中;(链接)这个阶段可以发现被调用的函数有没有定义
❤️下面哪一个不是指针?#define INT_PTR int* //相当于替换 typedef int* int_ptr; //定义别名 INT_PTR a, b; //int* a,b;====>a是指针,类型是int; b不是指针,类型是int int_ptr c, d; //c,d的类型都是int*指针类型
❤️feof函数不是用来判断文件是否读取结束;而是判断文件结束后是什么原因结束的
❤️读取文本判断是否结束时,fgetc看返回值是否为EOF;fgets看返回值是否为NULL
❤️二进制文件判断读取结束,看实际读取个数是否小于要求读取个数
🏀4.预处理和编译
知识点模糊?自己去补一下哈,《预处理和编译》
🥅习题1:
❤️考察宏的理解,要先整体带入,而不是计算好在带入
🥅习题2:
❤️定义宏时一定要注意括号的使用
🥅习题3:(重点)
❤️写一个宏,讲一个整数的二进制为的奇数位和偶数位交换
⭐️本质:实际上偶数位右移1;奇数位左移1位
⭐️思路:取出数据的奇数位,然后左移一位;取出数据的偶数位,然后右移一位;最终相加即可!怎么取出奇数位和偶数位呢?
⭐️例如:
❤️具体宏实现
🥅习题4:(重点)
❤️offsetof的使用
❤️offsetof利用宏的模拟实现
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/128510.html