C语言中的基本语句及常考的面试题
1.switch语句
注意:括号中只能为整型(包括字符类型)、枚举类型
面试题:switch-case与if-else的区别?
①case语句小于3句时,与if-else**底层的实现方式是相同的**;
②线性查找
当case语句大于4的时候,且相邻的两个case之间产生的间隔之和不超过6的时候,就按照线性结构查找;
③树形查找
当最大的case和最小的case之差大于255的情况下,编译器会进行树形查找。将数据由小到大排列,取中间值(若为偶数,取中间值靠右的那一个),在左右两边继续取中间值进行划分,直到小于等于3个数据的时候为止。
2.goto语句只能在函数体内跳转
3.面试题:break与continue的区别?
①break是跳出当前循环,结束整个循环过程,不再判断执行循环的条件是否成立
②continue是结束本次循环,而不是终止整个循环的执行。
注意:在循环语句中,break语句以及continue语句一般都是与if语句一起使用。break以及continue不能用于循环语句和switch语句之外的任何其他语句中。
4.面试题:死循环中,while(1)与for(;;)哪个效率更高?
for(;;)的效率更高一些,两个;;空语句,编译器一般会优掉,直接进入死循环。而while(1)每次循环都需要判断常量1是不是等于0。