zoukankan      html  css  js  c++  java
  • 毕业面试笔记1

    1.在vi编辑器中实现字符串的替换用:s

    :s/well/good/ 替换当前行第一个well为good

    :s/well/good/g 替换当前所有well为good

    :n,$s/well/good/ 替换第n行开始到最后一行中每行的第一个well为good

    :n,$s/well/good/g 替换第n行开始到最后一行中每行所有的well为good

    如果是文件中的替换:sed -i "s/字符串/ /g" 文件名

    2.变量声明和变量定义有什么区别?

    为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以有多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或者在文件后部分定义。

    3.static作用

    1)隐藏变量

    http://www.cnblogs.com/dc10101/archive/2007/08/22/865556.html

    2)保持变量的持久性

    存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。

    3)默认初始化为0

    其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00

    存储在静态存储区的变量有两种,一种是全局变量和static变量

    4.sizeof和strlen区别?

    sizeof是一个操作符,strlen是库函数

    sizeof的参数可以是数据类型也可以是变量,而strlen只能以结尾为''的字符串做参数

    编译器在编译时就计算出了 sizeof 的结果。而 strlen 函数必须在运行时才能计算出来。并且 sizeof计算的是数据类型占内存的大小,而 strlen 计算的是字符串实际的长度。数组做 sizeof 的参数不退化,传递给 strlen 就退化为指针了。

    5.链表和数组有什么不同?

    1)存储形式不同。

    数组是一块连续的空间,声明时就要确定长度。链表是一块不可连续的动态空间,长度可变,每个节点都需要保存相邻节点的指针

    2)数据查找。

    数组是线性查找,查找速度快,查找操作直接使用偏移地址;链表需要按顺序检索节点,效率低

    3)数据插入和删除

    链表插入和删除节点速度快,数组可能会遇到大量数据移动

    4)越界问题

    链表不存在越界问题,数组会出现越界问题

    6.队列和栈的异同?

    队列和栈都是线性存储,但是两者的插入和删除数据的操作不同,队列是“先进先出”,栈是“后进先出”

  • 相关阅读:
    如何在一台主机上管理自己的多个git repository
    Linux deepin 中Jetbrain Idea等软件中文显示异常
    使用openmp进行并行编程
    使用pthread进行编程
    使用openmp进行共享内存编程
    并行与分布式计算之并行硬件与并行软件
    算法笔记刷题5(PAT A1025)
    算法笔记刷题4(PAT B1009)
    算法笔记刷题3(codeup 5901)
    算法笔记刷题2(codeup 1928)
  • 原文地址:https://www.cnblogs.com/zhangerxiaoma/p/4593123.html
Copyright © 2011-2022 走看看