十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍“C语言有哪些面试题”,在日常操作中,相信很多人在C语言有哪些面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言有哪些面试题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,成都创新互联面向各种领域:成都广告制作等网站设计、全网营销推广解决方案、网站设计等建站排名服务。
1、c语言里面关键static的作用是什么?(看到这个问题读者可以自己先思考一下,再看答案)
答案:
(1)、在函数体中,一个被声明为静态的变量在这一函数被调用过程中维持其值保持不变。
(2)、在模块内,模块就是你写的".C"文件(在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但是不能被模块外其它函数访问,它相当于一个本地的一个静态全局变量(注意它和非静态全局变量的区别哦)。
(3)、在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。也就是说,这个函数被限制在声明它的模块本地内使用,不可以在模块外使用。
2、写一个“标准”宏,这个宏输入两个参数并返回较小的一个;同时讲出 # 与 ##的作用区别?
答案:
(1)、第一个问题可以这样来写,注意里面使用了三目运算符:
#define MIN(x,y) ((x)<(y)?(x):(y))
(2)、"#"作用是把宏参数转化为字符串的运算符,而"##"是把两个宏参数连接的运算符:
#define STR(arg) #arg
这里当参数 arg 为 hello ,则宏展开的结果是"hello"
#define STR(arg) name_y
#define STR(arg) name_##y
#define STR(arg,arg2) arg arg2##_##arg2##_arg2
上面示例中,假设 arg 为 int , arg2 为 a ,则上面宏展开的结果为:
name_y
name_int
inta_a_a
3、C语言里面关键字sizeof的作用是什么?
答案:
(1)sizeof是在编译阶段处理,且不能被编译为机器码。还有一点,很多人会认为它是一个库函数;它的作用是计算出各种类型变量或者结构所占的字节数:
int a ,sizeof(a)
int *a,sizeof(a)
int a[10],sizeof(a)
int a[0],sizeof(a)
sizeof(void)
sizeof(void *)
上面演示结果:
4
4
40
0
1
4
4、请简述用户空间的内存分配及各空间保存的数据类型:
答案:
(1) 用户空间供为3G,分为:栈空间,堆空间,数据区,代码段。
栈空间保存:局部变量,函数形参,自动变量。栈空间特点,先进后出,空间由系统管理;栈空间生命周期所在函数执行结束后释放;栈空间保存的局部变量未初始化时,默认初始化为随机值。
堆空间:由malloc , calloc ,ralloc,这些好函数分配的空间位堆空间,堆空间特点:先进先出,由用户管理。
数据区:又分为.bss段、.data段、常量区。其中.bss段保存的是未初始化的全局变量,当全局变量未初始化时,系统默认初始化为0;常量区保存的是常量,里面保存的值不能被修改,只能做读操作;.data段是保存已经初始化的全局变量以及被static修饰的变量(静态变量)。数据区的声明周期是整个程序执行完之后再释放。
代码段保存的是代码。
到此,关于“C语言有哪些面试题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!