300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 毕业学生 C语言面试十大常见问题 提升面试分数

毕业学生 C语言面试十大常见问题 提升面试分数

时间:2023-05-31 14:24:05

相关推荐

毕业学生 C语言面试十大常见问题 提升面试分数

直接上货:

1,volatile关键字的作用是什么?

告诉编译器,不要对我这个变量做过分的优化,直接访问内存,不要通过寄存器访问。实时获取变量的最新值。

2,全局变量和局部变量的区别?

全局变量如果没有使用static修饰的话,可以使用在整个项目里面,如果加static修饰的话,只会在本地 .c文件中使用。

局部变量是存在栈区空间,它的作用域只是在它的函数内部。

全局变量和局部变量同名的话,采用局部优先原则,局部变量会屏蔽全局变量。

3,什么是预编译?

预编译是做些代码文本的替换工作。

处理以# 开头的指令 , 比如拷贝 #include 包含的文件代码,#define 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段。

主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。

C 编译系统在对程序进行通常的编译之前,首先进行预处理

例如#include 指令#define指令 #if、#else和#endif指令

4,static关键字的作用?

第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。

第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。

第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0;

5. 为一个绝对地址为0X8877的整形变量赋值为0X7788

三行代码实现:

int *p;p = (int*)0x8877;*p = 0x7788;

6,自己写代码实现strcopy的功能

char s1[32] = "888888888";

char s2[32] = "hello world";

int i = 0; //只要 s2 没遇到 '\0' 就将字符复制给 s1

while(s2[i] != '\0'){

s1[i] = s2[i];

i++;

}

s1[i] = s2[i];//将 s2 的 '\0' 也拷贝给 s1 !!!!

7. 用一个宏来表示一年中有多少秒(笔试:考察宏的写法是否简介、明了、严谨。)

#define SECONDS_PER_YEAR (60*60*24*365)

8. 用C语言写一个宏函数,得到两个参数值的最小值

#define MIN(a,b) (a > b)? a : b ;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。