摘要:前言 我们可能听过C语言中的传值和传指针,在其他语言中,也有传引用一说,那么他们到底有什么区别呢?如果你还不能准确地分辨,就该好好了解一下了。 传值 我们在初学C语言的时候就被老师教过,下面的方式是无法交换a和b的值的: 运行结果如下: 可以看到,a和b的值最终并没有被交换。开始时a,b的值为10,
阅读全文
摘要:通信协议中的数据传输、数组的存储方式、数据的强制转换等这些都会牵涉到大小端问题。 CPU的大端和小端模式很多地方都会用到,但还是有许多朋友不知道,今天暂且普及一下。 一、为什么会有大小端模式之分呢? 因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。 但是在
阅读全文
摘要:请看题: 问题很简单,就问会输出什么?无非就这几个答案:1,0,报错,随机数。那究竟是多少呢?当然我们先声明实际工作中很少有人会这么写,我们主要是借用此题给大家讲一些C的知识,其实本题主要涉及的知识点是全局变量和局部变量的问题,也就是变量作用域的问题。 首先进行简单分析:一开始声明全局变量a并赋值,
阅读全文
摘要:前言 在C语言中,数组和指针似乎总是“暧昧不清”,有时候很容易把它们混淆。本文就来理一理数组和指针之间到底有哪些异同。 数组回顾 在分析之前,我们不妨回顾一下数组的知识。数组是可以存储一个固定大小的相同类型元素的顺序集合。为了便于我们说明,假设有以下数组声明: 数组大小必须在编译期就作为一个常数确定
阅读全文
摘要:八大排序是《数据结构》这门大学计算机必修课中非常基础但是特别重要的知识点 常见的八大排序,他们之间关系如下: 一、直接插入排序(Insertion Sort) 直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过
阅读全文
摘要:1. vim模式 2. 打开文件 3. 插入命令 4. 查找命令 最简单的查找 快速查找,不需要手打字符即可查找 精准查找:匹配单词查找 如果文本中有这三个单词 hellohelloworldhellopython 那我使用 /hello ,这三个词都会匹配到。 有没有办法实现精准查找呢?你可以使用
阅读全文
摘要:冒泡排序 冒泡排序算法又称交换排序算法,是从观察水中气泡变化构思而成,原理是从第一个元素开始比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较,就仿佛气泡逐渐从水底逐渐冒升到水面一样。如此扫描一次之后就可以确保最后一个元素位于正确的位置。接着再逐步进行第二次扫描,直到完成所有元素的排
阅读全文
摘要:查找最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 例如1: 例如2: 最简单的做法就是暴力解法,通过二重循环确定子串的范围,然后判断子串是不是回文,最后返回最长的回文子串即可。
阅读全文
摘要:一、悬空指针 C语言中的指针可以指向一块内存,如果这块内存稍后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时该指针就是“悬空指针”。下面这段C语言代码是一个例子,请看: C语言中的“悬空指针”会引发不可预知的错误,而且这种错误一旦发生,很难定位。这是因为在 free(p) 之后,p
阅读全文