c/linux相关题目与理解

一、c常见问题

一、那些情况下可以刷新输出缓冲区?

        1.程序结束可以刷新;2.缓冲区满后刷新;3.flush()后刷新;

二、引用和指针的区别

        1.有空指针但是没有空引用;2.指针可以指向其他地址,但是引用只能引用一次;3.引用时必须初始化;4.指针指向一个地址,但是引用只是一个别名;5.sizeof引用得到的是变量本身的大小,sizeof指针为4。

三、malloc和new的区别

        1.malloc是一个函数,但是new是一个关键字;2.malloc失败返回NULL,new失败返回一个异常;3.malloc开辟指定大小空间,new根据实际情况自己开辟。

四、程序的内存分配

        1.堆:程序员自己分配的与释放的空间

        2.栈:存储局部变量,函数形参

        3.全局区:程序结束后由程序员释放,存储全局变量或静态变量

        4.文字常量区:存放常量字符串

        5.程序代码区:存放函数体的二进制代码

五、数组与链表的区别

        1.数组长度固定,链表长度不定;2.数组地址连续,链表地址不连续;3.数组可以随机访问,但是链表不可以;4.链表可以删除元素,但是数组较为困难;

六、回调函数的作用与用法

        回调函数:用一个函数指针进行调用的函数,如果把函数指针作为参数传递给另一个函数,当这个指针被用为调用他所指的函数时,这个函数就是回调函数。

        作用:将调用者和被调用者分开。调用者不需要知道谁是被调用者,只需要知道调用函数的原型和限制条件。

        函数指针:是指在定义函数时将函数名以指针方式表示的函数,例如:int (*name)(void);

七、并行与并发

        并行:两个任务共享时间片段,简单的说就是,在一个时间段内,a/b两个线程用一个cpu进行数据处理,a线程占用cpu资源一段时间后由b线程占用,二者不同时占用,但是线程切换速度太快,肉眼不可见,以为时同时发生的。

        并发:并发是指两个线程由两个cpu同时执行(需要多个cpu),执行完毕后将结果合并。

八、内存泄漏/溢出/踩踏

        内存泄漏:是指在程序中申请的一些堆内存,由于某些原因未释放或无法释放而造成的内存浪费。

        内存溢出:指在程序中申请内存时,没有申请足够的内存供使用者使用。如申请200字节内存放置51个整形数据。

        内训踩踏:访问了不合法的地址。例如:数组越界、字符串操作越界。

未完待续.........

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值