|
今天给大家带来了5个C语言小题目,都是从国内外企业面试题中精选的,并且有的进行了一定的修改,难度有所提升。应该来说,这5道题都有不同程度的陷阱,一不小心就容易掉到坑里,同时也涉及了很多C语言一些比较细的知识点,对C基础的掌握程度是个不错的检验,话不多说了,大家往下看题吧! 三点注意: 1.所有题目都是问输出结果。 ! k. I) G% e/ Z% L: n 2.假定int为4字节,char为1字节,指针为8字节,小端存储。 3.答案在文章末尾给出,这里建议大家先自己做一下看看。 ; k5 @: E0 a. O- Z3 S 第一题
第二题4 E0 v( z& c$ r! ~) ^2 P+ H. @
- T6 J; L F' s- d$ {8 l4 |! T" b 第三题
第四题
第五题/ y7 e, S* y2 V2 R( p* s. ^
6 R) {, E$ m- M . Z+ Q! o$ o5 L, @ 答案: (1)5,未定义,20,8 (2)未定义,0 (3)7,14(可能有的编译器不通过) (4)空字符,未定义 (5)000000f7 fffffff7 |
微信公众号
手机版
2、指针包含了地址的同时也包含了指向地址的内存大小,如char*每次自加或者+1时,增加1byte,int*每次增加4byte,数组名是常量无法自加
3、多个自加或自减同时运算,绝对要避免!这个是由编译器设计者定义( N# s9 B: e/ h. z1 _ l4 U7 }7 l: {
4、不管运算符优先级如何,都应该加上括号以明确结合关系,否则后患无穷
4、\0是结尾,不会打印。空字符为空格、换行、制表等+ F% I0 f6 ]6 h' I6 t
5、第五题不同架构会有不同结果,x86和部分arm属于小端序,部分arm属于大端序