![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c语言面试、笔式题
总结关于C语言方面的面试题和笔试题
写不出bug的小李
所有事情在一开始才是它最原本的样子,越往后越偏离
展开
-
C语言关于操作符的两道笔试小题(另加一个)
【代码】C语言关于操作符的两道笔试小题。原创 2024-03-27 20:04:09 · 200 阅读 · 0 评论 -
关于动态内存分配的笔试题(二)
分析:使用了一块已经被释放的内存str,这就是非法访问内存。并且free释放str指向的空间后,并不会把str置为NULL,所以if判断没有意义。分析:变量x属于栈区,当f1函数调用结束时,栈区的内存会自动还给操作系统,所以x的那块地址已经是未知的,所以再将其地址作为函数的返回值就会存在非法访问内存的问题。分析:定义指针时没有给指针初始化,又紧接着给指针赋值,这会出现非法访问内存问题。问题:程序输出world,但非法访问内存(篡改动态内存区的内容)问题:非法访问内存(野指针问题)原创 2024-02-17 23:00:22 · 313 阅读 · 1 评论 -
关于动态内存开辟的两道经典笔试题
跟题目一类似,当Test函数调用GetMemory函数之后,数组p会还给操作系统,所以虽然str指向的初始位置和p的起始位置相同,但是后面的内容已经不是“helllo world”,所以是一些随机值,再将这些随机值打印就会出现非法访问内存的现象。1.GetMemory函数中参数p只是str的一份临时拷贝,因为是值传递(也就是只传的是str这个指针,并没有传str这个指针的地址),所以在调用完GetMemory函数之后str还是原来的空指针。答案:该运行程序会崩溃,具有非法访问内存的现象。原创 2024-02-17 21:56:07 · 368 阅读 · 1 评论 -
C语言中四道典型小题
1.0 请问循环要循环多少次?#include<stdio.h>int main(){ int i=0; int k=0; for(i=0,k=0;k=0;i++,k++) k++; return 0;}解答:改代码循环0次,原因:for循环中判断语句为k=0恒为假,所以循环0次。...原创 2024-01-23 08:23:39 · 379 阅读 · 0 评论