【青鸟飞扬教育】12个有趣的c语言面试题!看看有没有你会的? 1.gets()函数 问:请找出下面代码里的问题: #include int main(void) char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; 答:上面代码里的问题在于函数gets()的使...
10.返回本地变量的地址 问:下面代码有问题吗?如果有,该怎么修改? 答:尽管上面的程序有时候能够正常运行,但是在“inc()”中存在严重的漏洞。这个函数返回本地变量的地址。 因为本地变量的生命周期就是“inc()”的生命周期,所以在inc结束后,使用本地变量会发生不好的结果。这可以通过将main()中变量“a”的地址...
12个有趣的c语言面试题!看看有没有你会的? 1.gets()函数 问:请找出下面代码里的问题: #include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答:上面代码里的问题在于函数gets()的使用,这个函数...
如何理解结构体的浅拷贝和深拷贝 当结构体中出现指针成员的时候容易出现浅拷贝和深拷贝的问题。 浅拷贝:两个结构体的指针成员指向同一块区域空间,结构体释放时这块空间会被多次释放; 深拷贝:两个结构体指针成员指向不空的区域空间,只是内容拷贝一份,结构体释放时不会出现同一个空间被释放多次的情况。 文件 文件缓冲...
有意思的12道C面试题及答案 这篇文章涉及到的都是一些C语言的基础知识,是从一篇英文文章中部分翻译和加入我自己的认识!!! 1. gets()函数 Q:下面的代码中隐含着安全问题,能发现吗? 1#include<stdio.h>2intmain(void)3{4charbuff[10];5memset(buff,0,sizeof(buff));67gets(buff);89printf("\n The ...
12个有趣的C语言面试题 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个! 1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff);...
c语言面试题目及最佳答案 1、描述一下gcc的编译过程? gcc编译过程分为4个阶段:预处理、编译、汇编、链接。 预处理:头文件包含、宏替换、条件编译、删除注释 编译:主要进行词法、语法、语义分析等,检查无误后将预处理好的文件编译成汇编文件。 汇编:将汇编文件转换成二进制目标文件 链接:将项目中的各个二进制文件...
c语言面试题目100及最佳答案 1.介绍C语言的基本数据类型和其范围。 C语言的基本数据类型有char、int、float和double。它们的范围分别如下: - char: -128到127 - int: -32768到32767 - float: 3.4e-38到3.4e+38 - double: 1.7e-308到1.7e+308 2.什么是指针(Pointer)?请解释指针的作用。 指针是一个变量...
下面将介绍一百个C语言面试题目以及它们的最佳答案,帮助你更好地准备和应对C语言面试。 1. C语言的特点是什么? C语言是高级程序设计语言,具有简洁、灵活、高效等特点。 2.什么是编译器? 编译器是将高级语言源代码转换为目标代码的程序。 3.什么是链接器? 链接器是将目标代码和库文件连接起来生成可执行文件的...
C高级面试题及答案 1. 问题:请解释C语言中的指针和引用的区别。 答案:在C语言中,指针是一个变量,它存储了另一个变量的内存地址。指针可以被重新赋值为其他地址,也可以被解引用,访问或修改它所指向的内存中的数据。而引用在C语言中并不存在,这是C++的一个特性。在C++中,引用是一个别名,它为一个已存在的变量...