1. "估计遇到这样的for语句,在某些大公司是会被警告直至走人的。
干嘛非要放到括号里完成呢?"
---------------------------
答: 面试惹的祸, 有的面官就要你用两行最多三行写完成某一功能的函数. 咱又不是不会用所谓"好"风格的for和while. 它需要啥咱就给它啥, 咱要工作! 它不需警告, 只要它皱眉头, 咱就改, 咱还不是给逼的吗?
2. "另外,字符数组你这程序是不能用的。
我给你一个测试用例:
char arr[5] = {'H', 'e', 'l', 'l', 'o'};
------------------------------------------
答: 提的好, 它没有第六个字节放'\0'! 我指的是:
char arr[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
char arr[] = "Hello";
这样的"串"形字符数组, anyway you're a careful guy!
3. "BTW,你如果要指定是C++,那么,C++中已经有reverse函数(头文件algorithm):
reverse(str, str+strlen(str)-1);
而交换变量,也有swap函数(头文件algorithm):
swap(*head++, *tail--);
-----------------------------------------
答: 哈, 我没指传统C++, 或STL式C++, 看看头文件就知道了:)
在C中就有标准库函数: char* strrev(char* str);
可以直接调用滴, 我只是练手^_^ (BTW, 现在嵌入式开发可以用C++(以前只许ams和C哦), 但还不允许C++标准库STL), 不知贵公司的情况了:)
4. 欢迎沐枫兄多指教, 谢了!
回复 更多评论