C学习深入学习总结

时间:2020-11-23 10:45:57
【文件属性】:

文件名称:C学习深入学习总结

文件大小:246KB

文件格式:DOC

更新时间:2020-11-23 10:45:57

C语言 关键字 详细解释 总结面试 笔试题。

C语言各种常用关键字详细解释学习,都是总结面试,都是比较好的笔试题。 1 变量 3 1.1 全局变量,局部变量,,常量分别保存在内存中的什么地方? 3 1.2 不同类型的变量,你是否知道其作用域? 3 1.3 全局变量和局部变量是否可以重名?你是否在这样做? 3 1.4 局部变量在函数退出后是否有效,为什么? 3 1.5 全局变量为什么不允许定义在头文件中?有何危害? 3 2 Static 4 2.1 static的三个主要作用是什么? 4 2.2 static的修饰的局部变量是保存在什么地方的?全局变量哪? 5 2.3 static修饰的全局变量和函数,在其他的文件中是否可以访问?如何访问? 5 2.4 你知道static是c语言中实现封装和隐藏的利器吗?你是否经常使用? 5 2.5 定义在不同源文件中的static全局变量,编译器是否允许他们的变量名称相同? 5 2.6 你是否知道auto、extern、register、volatile、restrict、inline的用法? 6 3 const 6 3.1 你是否经常使用const来表明不能够被更改的变量? 6 3.2 你是否经常使用const常量来代替宏? 6 3.3 下面四种情况,你知道是各表示什么意思吗? 6 3.4 你知道const常量如何初始化吗? 7 4 enum枚举 7 4.1 到底enum所定义出来的类型是一个什么样的类型呢? 7 4.2 作为一个用户自定义的类型其所占用的内存空间是多少呢? 8 4.3 是否可以指定枚举中各项的值? 8 4.4 如果不指定值,枚举的第一个值是多少? 8 4.5 枚举的值是否可以是负数? 8 4.6 定义枚举的时候,你是否专门定义了枚举的最小值和最大值? 9 5 switch 9 5.1 switch(c)中的c的数据类型有哪些? 9 5.2 你是否在所有的switch中都加了default语句? 9 5.3 是否在所有的case中都加了break语句(一般情况的做法)?如果你不加break,将会发生什么? 9 6 sizeof 9 6.1 对于字符数组,strlen和sizeof的值是否相同? 9 6.2 Sizeof本质上是什么?函数?宏?其他? 9 6.3 Sizeof的返回值是什么类型? 10 7 动态分配内存 10 7.1 动态分配的内存是保存在什么地方的? 10 7.2 什么情况下使用动态分配内存? 10 7.3 动态申请内存一定要释放,否则会内存泄露。你是否使用过内存检测工具? 10 8 字符串 10 8.1 strlen()函数的返回值是什么类型的? 10 8.2 字符串strlen() 的值,是否和他占据的内存空间相同? 10 8.3 你是否知道strcpy 函数存在的潜在风险?如何避免? 11 8.4 如果一个字符串没有字符串结束符,而调用str 开头的库函数,会发生什么? ?? 11 8.5 Strcpy(),strcat(),strcmp(),strncpy(),strncat(),strncmp()内部到底是如何运行的?这些函数到底对源字符串和目标字符串做了些什么?你是否观察过它们运行时两个字符串内存的变化? 11 8.6 上面这些函数使用时,各有哪些需要注意的地方? 11 8.7 你会几种字符串查找操作? 11 8.8 C语言中有字符串这个数据类型吗? 11 8.9 对字符串进行操作的时候,是否为字符串结尾符预留存储位置?不然的话容易造成非常访问内存。 11 9 数组 12 9.1 你肯定知道,定义“int a[10]; ”, a[10] 这个元素是无效的。 12 9.2 你知道几种数组初始化的方法? 12 9.3 数组和指针有千丝万缕的联系而又不同,你是否对他们在不同情况下的使用进行过详细的总结? 12 9.4 “int calendar[10][20]; ”,这是一个什么样的数组?它拥有 10 数组类型的元素,还是 20 个? 12 9.5 “int a[10]; ”,数组名 a 在本质上是一个什么?你是否打印过 a 的值? 12 9.6 你知道几种获取数组某元素的方法? 12 9.7 指针和数组相同吗?什么时候相同?什么时候不同? 12 9.8 用指针和下标访问数组元素,那种方式更快? 16 10 结构体 16 10.1 你知道什么是位域结构体吗?如何定义它?如何使用它? 16 10.2 你知道字节对齐对结构体占用内存空间大小的影响吗?如何计算结构体占用内存的小? 17 11 宏 19 11.1 你知道宏的本质是什么吗?函数?语句?类型定义?或者其他? 19 11.2 你知道语言设计者为什么设计宏吗?这些原因目前是否仍然成立? 19 11.3 你会设计带有参数的宏吗? 19 11.4 你知道使用宏的参数的的时候的注意事项吗? 19 11.5 你会设计带有可变参数的宏吗? 19 11.6 你知道使用宏有什么劣势吗? 20 11.7 你有没有更好的替代方案? 20 11.8 为什么说宏定义不好? 21 12 如何避免对同一头文件的多次include? 22 13 什么是声明,什么是定义? 22 14 你是否会运用c语言声明的优先级规则? 23 15 什么是预编译,何时需要预编译? 23 Total time: 90 minutes 23 16 指针数组和数组指针的区别? 30 16.1 指针的声明 30 16.1.1 一维数组 31 16.1.2 多维数组 32 16.1.3 指针数组 33 16.1.4 指针的指针 33


网友评论