10/12,昨天参加了一套c/c++基础知识的笔试题,题目不难却有些偏门,笔试中个人感觉有如下问题需要重视:
指针与引用指向的内存位置;变量调用之堆和栈。(关于堆和栈的知识)
char c=134;printf("%d",c);printf("%u",c);(整数和字符型相互转换的问题)
位操作:位与&、异或^、非~和移位(<<、>>),位或|(考试中,被当成数理逻辑的合取算符来用了,很长时间不用位或,关键时刻掉链子);
二进制、十六进制、八进制的关系:将十六进制OxEC3转换成1110 1011 0011,十六进制每位数对应4个二进制数。
转义字符"\x",错误地理解"\x78\x56\x34\x12" 为将78转换成8进制的数,实际上是十六进制表示,非常大意。\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。
内存泄露的处理方案,Hash表的效率优化,这些问题平常都看到过,但是由于不常用,时间一长就记忆模糊了。看来阅读书籍非常重要,即便再忙,也要抽取时间用于提升自己。代码系统一直在编写,但是基础的东西却在慢慢忘记,这有些得不偿失。
不适应纸上编写代码,过于依赖IDE的调试功能,没有综合的分析思路,需要练习分析和伪代码编写的能力。
总而言之,基础与动手能力还须加强。
原文地址:http://musictimer.blog.51cto.com/5154936/1563153