宣讲会,招聘会,满大街跑得不亦乐乎,当初谁跟我说做嵌入式很火很吃香的?mother egg!到头来还得东跑西跑,跑大学城,跑隔离华工,而且关键是工资不高,福利一般,又累又加班,最近果断拒绝了两家公司的卧佛,原因很简单,虽然在广州,也是好远,不想在外面租房,虽然房费公司出,累觉不爱!好了,说一下本人做过的笔试题吧,有些不会做,有些觉得有意思,决定写下来研究研究->
校招笔试题还是比较简单的,不过不知是不是大企业都看学校和专业的,几家大公司的宣讲会,做完笔试,胸有成竹,竟然连面试机会都没有,真是伤心!笔试题出的最多的无非是变量所占的字节数了,总结如下:已知32位系统
int a; //sizeof(a)等于4
int *b; //sizeof(b)等于4 指针大小跟类型无关,只跟系统有关,char *b; b还是4字节大小
char c[]=”hello” //sizeof(c) 等于6 最后还有一个 ‘\0’
//strlen(c) 等于5 不包括 ‘\0’
void fun(char d[100]) //sizeof(d) 等于4 数组作为形参,自动退化为指针
{
}
struct student{
char name[10];
int num;
}stu; //sizeof(stu)等于16,主要考虑字节对齐
还有见过一个比较恶心的题目:
struct data{
int n;
char a[0];
}tdata; //sizeof(tdata) 等于4,零长数组不占内存
说开占多少字节数,不得不说一下引用这东西,很多人把他当做指针,因为他跟指针拥有某些相同的特性,但引用相对来说比指针更安全,他只是变量的别名,比如刘小花,可能有人叫她花花,但不管叫刘小花还是花花,指的都是同一个东西,跟指针不同的是,她不占内存,多好,不但不占内存,通过这个别名还可以改变原来目标的值,比指针省事不少,看一下官方总结的引用与指针的区别:
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
在c++中引用用的比较多,学好c++,引用必需搞清楚。
还有一些关键字的作用也经常考,下面一一道来->
static:
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
const:
可以简单理解为只读
1) const int a;
2) int const a; //1、2作用一样,表示a不可修改
3) const int *a; //表示整型数不可修改,指针可以
4) int *const a; //表示指针不可以修改,整型数可以
5) int const *a const; //表示指针与整型数都不可修改
此外还有 volitile,inline,class,struct 等关键字,这里就不一一说明了。总之,校招的笔试题一般不会太难,都是考一些比较基础的知识,笔试前看一看常考知识点应该没什么问题。这里一篇博客详列了一些常考知识点:c/c++笔试题集