Linux基础——makefile编写

Makefile基本原则和原理 makefile中的三要素:目标、依赖、命令 目标:要生成的目标文件(在Makefile中会把第一个目标作为终极目标,一切以生成终极目标为最终目的) 依赖:生成目标文件需要的一些文件 命令:借助依赖文件生成目标文件的手段 工作原理:要生成终极目标,...

2018-07-05 10:58:54

阅读数 670

评论数 0

Linux基础——gdb调试

启动gdb调试 生成可执行文件之前必须加参数 -g gcc hello.c -o hello -g gdb hello 启动调试 gdb相关命令 参数 用途 l 列出文件代码清单 l + 行号n 从第n行开始显示代码 b + 行号n +...

2018-07-04 10:57:01

阅读数 87

评论数 0

Linux基础——gcc编译、静态库与动态库(共享库)

gcc编译器 1、gcc工作流程 2、gcc常用参数 参数 用途 -v 查看版本 -o 产生目标文件 -I+目录 指定头文件目录 -D 编译时定义宏 -00/-01/-03 没有优化/缺省值/优化级别最高 ...

2018-07-03 17:44:34

阅读数 1190

评论数 0

Linux基础——vim基本操作

vim工作模式 命令模式 – 打开文件之后, 默认进入命令模式 编辑模式 – 需要输入一些命令, 切换到编辑模式 末行模式 – 在末行模式下可以输入一些命令 命令模式下的操作 1、移动光标 2、删除操作 3、撤销操作 u:一步一步撤销 ctrl+r:反撤销 4、复制...

2018-07-02 11:26:05

阅读数 88

评论数 0

c语言进阶——文件读写

文件的打开fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了。当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件名不存在,就意味着建立(只对写文件而...

2018-06-21 17:05:34

阅读数 166

评论数 0

c语言进阶——结构体专题

结构体类型定义及变量定义 1、定义结构体类型变量的三种方式 //用类型定义变量的方法3种 //第一种:定义类型的同时定义变量 struct Student { char name[64]; int age; }s1, s2; //第二种:使用结构体类型定义变量 typed...

2018-06-21 09:30:06

阅读数 117

评论数 0

c语言进阶——多维数组本质及指针数组的应用分析

多维数组的本质 一维数组int a[10]在做函数参数时会退化为指针int *a,但是二维指针做函数参数时却不能写成二级指针,那么二维数组的本质到底是什么,可以通过代码来验证。 int a[3][5], i=0, j=0;//定义一个3*5的二维数组 int tmp = ...

2018-06-12 15:00:13

阅读数 58

评论数 0

c语言进阶——数组类型与数组指针

数组基本概念 元素类型角度:数组是相同类型的变量的有序集合 内存角度:连续的一大片内存空间 数组的初始化 //数组元素的个数可以显式或隐式指定 //数组初始化可以使用{0}或memeset两种方式 void main() { int a[] = {1, 2}; //隐式...

2018-06-10 11:59:05

阅读数 50

评论数 0

c语言进阶——多级指针内存模型

多级指针内存模型(以三级指针为例) 指针的最大作用:间接赋值 推论:n级指针形参可以间接改变n-1及指针实参的值 三级指针作用:通过函数参数来为二级指针分配内存,间接赋值,回收内存 //为二级指针分配内存 int getMem(char ***p3 , int num) { ...

2018-06-08 15:17:45

阅读数 81

评论数 0

c语言进阶——二级指针内存模型

二级指针输出模型 //指针做输出:被调用函数分配内存 //指针做输入:主调用函数分配内存 //求文件中的两段话的长度 int getMem(char **myp1, int *mylen1, char **myp2, int *mylen2) { char *tmp1 = NULL;...

2018-06-08 14:58:28

阅读数 62

评论数 0

c语言进阶——字符串和一级指针内存模型

字符串基本操作 在C语言中使用字符数组来模拟字符串 C语言中的字符串是以’\0’结束的字符数组 C语言中的字符串可以分配于栈空间,堆空间或者只读存储区 1、字符数组初始化 //1 指定长度初始化 char buf2[100] = {'a', 'b', 'c', 'd...

2018-06-07 16:05:24

阅读数 57

评论数 0

c语言进阶——指针概述

指针是一种数据类型 1、指针也是一种变量,占有内存空间,保存内存地址 2、*p操作内存 在指针声明时,*号表示所声明的变量为指针 在指针使用时,*号表示操作指针所指向的内存空间中的值 *p相当于通过地址(p变量的值)找到一块内存;然后操作内存 *p放在等号的左边赋值(给内存赋值) *p放在...

2018-05-31 15:09:49

阅读数 314

评论数 0

c语言进阶——函数调用模型

函数调用模型分析 fb在栈上分配的内存空间,不能被fa和main使用 fb在堆上分配的内存空间,可以被fa和main使用 fb在静态、全局区分配的内存空间可以被fa和main使用 ...

2018-05-30 10:41:11

阅读数 139

评论数 0

c语言进阶——程序的内存四区

内存四区的建立流程 流程说明 1. 操作系统把物理硬盘代码load到内存 2. 操作系统把c代码分成四个区 3. 操作系统找到main函数入口执行 内存四区元素分析 静态存储区理解 char * getStr1() { char *p1 = &quo...

2018-05-30 10:07:16

阅读数 123

评论数 0

c语言进阶——变量本质分析

变量本质分析 变量的本质是一段连续内存空间的别名,程序通过变量来申请和命名内存空间。可以把变量理解为访问 内存的“门牌号”,对变量进行读写操作并不是往变量中读写数据,而是通过变量这个“门牌号”来操作内存。 修改变量的几种方法 直接修改 间接修改(通过内存地址进行修改)——指针的产生 ...

2018-05-27 17:24:43

阅读数 52

评论数 0

c语言进阶——数据类型本质分析

数组做函数参数的退回问题 当数组做函数形参时,数组会退回为一个指针变量 下面用一个例子给出一个简单的证明 void sortArray(int a[], int num) { int i, j, tmp; int num2 = 0; num2 = sizeof(...

2018-05-27 16:56:45

阅读数 58

评论数 0

链表专题—LeetCode 21. Merge Two Sorted Lists

题目链接 LeetCode 21. Merge Two Sorted Lists 题目描述 Merge two sorted linked lists and return it as a new list. The new list should be made by splicing...

2018-05-18 11:08:15

阅读数 46

评论数 0

链表专题—LeetCode 19. Remove Nth Node From End of List

解题思路 第一种方法: 1、计算出链表的长度len 2、根据给出的倒数第n个结点计算出结点要移动的次数 第二种方法(最优): 1、创建指针curr,p指向头结点 2、将curr移动n个位置,此时curr与p的距离即为n 3、将curr和p依次后移,当curr移动到链表尾部时,p所指的...

2018-05-18 10:42:49

阅读数 31

评论数 0

链表专题—LeetCode 2.Add Two Numbers

解题思路: 1、输入为两个用链表存储的逆序数,输出也为逆序,因此不用将输入转化为正序。 2、从两个链表的头结点开始依次相加,存储到新链表中。 3、注意计算进位。 注意: 1、输入数字很大,要使用大数加法进行计算。 2、两个链表可以不一样长。 class Solution { publ...

2018-05-17 18:09:47

阅读数 37

评论数 0

面试经验(6)

1、若PCping不通路由器,要怎样排查故障 Ping 127.0.0.1,该地址是本地循环地址,如发现本地址无法Ping通,就表明本地机TCP/IP协议不能正常工作 如果上面操作成功,可Ping通的话,我们接下来可以输入IPConfig来查看本地的IP地址,然后Ping该IP,通则表明网络适...

2018-03-18 22:49:02

阅读数 55

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭