- 博客(22)
- 收藏
- 关注
原创 对malloc和free的理解
学习数据结构之后,我们发现链式的数据结构都少不了malloc这个函数,每当我们要建立一个新的结点时,都要用malloc创建一个堆空间,用这个堆空间存放结点的数据域和指针域。创建语句如下: struct Node *p = (struct Node *)malloc(sizeof(struct Node)); struct Node *p是指创建一个存放 struct Nod...
2018-08-05 17:46:11 606
原创 单向链表详解
#include<stdio.h>#include<stdlib.h>#define T 1#define F 0typedef int Elementtype; //重命名int为Elementtypetypedef int Status; //重命名int为Status,作为函数的返回类型struct Node ...
2018-08-03 16:50:47 1623
原创 栈
#ifndef _Stack_H_#define _Stack_H_#define OK 0#define ERROR 1 //栈的节点typedef struct Stack_Node{ int data; struct Stack_Node * next;}Stack_Node;//栈的头结点指向栈的顶端值,有了头结点就可以找到整个栈;typedef ...
2018-07-17 23:13:14 198
原创 宏定义和自定义函数
宏定义函数和自定义函数:在预处理阶段要处理哪些东西?1、头文件:#include .... //#include <stdio.h> #include "stdio.h"2、宏定义:#define ...3、注释;4、条件编译:#if ... #elif ... #endif总结一下:带#都是在预处理阶段处理的!宏定义怎么定义:#define 宏定义变量名 宏定义本质上的内...
2018-06-11 21:01:17 1232
原创 段错误和野指针,关键词及内存管理
野指针和段错误;什么叫野指针: p保存的是int a的地址,那么就说 p指向a; 1、当指针指向不明确的时候; int *p; //此时不知道p保存的是什么地址! *p = 10; 2、指针保存的地址不存在! int *p = 0x12345678; 2、指针指向明确,地址也存在,但是我们指向的空间没有操作权限; int *p = NULL; //指向了0地址;但是0地址受系统...
2018-06-09 20:39:20 342
原创 指针和其他知识点的联系
一、指针和数组: ①数组指针:首先是个指针 ===》 这个指针保存的是什么地址? ===》保存的是数组的地址; 小结: 1、一维数组名代表数组首元素的地址; //char str[5] = "hello"; str + 0 == &str[0]; str + 1 == &str[1]; str + 2 == &str[2]; 2、对一维数...
2018-05-31 21:48:16 230
原创 输入一个字符串,同时输入帧头和帧尾,将该字符串的合法帧识别出来
#include<stdio.h>#define N 100int main(){ char str[N] = {0}; char head[N] = {0}; //定义数组并初始化 char tail[N] = {0}; char *a = NULL; char *b = NULL; //定义指针并初始化 char *c = NULL; int...
2018-05-30 22:30:13 806
原创 指针1
指针: 什么是指针?为什么需要指针?有了指针之后有什么好处?没有指针行不行? 1、什么是指针? 指针的全称“指针变量”,本质上也是一个变量!跟int cha float....没什么区别,都是用来保存数据! int a; //12345; char c; //'a' float fl; //1.2 既然指针是变量,所以也是用来保存数据!====》保存的是其他变量的地址!【跟普通类型...
2018-05-29 21:36:51 151
原创 函数
什么是函数,为什么需要函数,有了函数之后有什么好处,没有函数行不行? 对于函数有什么操作; 1、为什么需要函数? main() { XXX; XXX; } 自然段;----》章 ----》卷或者季; 盗墓笔记第一季: 第一章; 第一段; 第二段; 第三段; 第二章; 第三章; 。。。 盗墓笔记第二季; 。。。 盗墓笔记第三季; 。。。 ===》采用“分”的思想; =...
2018-05-27 22:03:20 185
原创 字符数组和字符串
string str1 = "hello"; //string数据类型在c语言里没有,在C++和Java里是有的;C里面使用字符数组的方式来保存字符串。 strlen(str):表示的字符串的长度: '\0'表示的是字符串结束,'\0'之前的字符是字符串的有效字符 ——》"hello world"'\0'——》'\0'称为魔数(C语言里表示特定含义的数)—...
2018-05-26 22:29:49 175
原创 与数组有关的练习
输入十个数用插入排序,降序输出;#include<stdio.h>int main(){ int a[10] = {0}; int b[10] = {0}; int i = 0; int j = 0; int k = 0; int flag = 0; printf("please input 10 number\n"); for(i = 0; i < 10; i++)...
2018-05-25 20:18:16 168
原创 数组
1.什么是数组 “相同数据类型”的一些数的集合2.为什么需要数组: 对于数据之间有精密联系的相同类型的数据,我们可以数组方式来定义;3.有了数组之后有什么好处? ①减少了错误发生的概率; ②体现了数据和数据之间的紧密联系;4.定义和定义变量 数组:一排一排的盖房子,之间又联系性; 变量:独栋别墅;数组的分类: 一维数组和二维数组;(根据维度来分) 根...
2018-05-24 23:36:09 154
原创 Makefile的使用
Makefile 基于这样的现实: 公司的工程代码不可能都放在同一个.c(原文件)里面,根据不同的模块进行封装; 导致的错误: 1.多了个.c或是少了个.c 2.工程代码修改了之后——》重新编译——》gcc...——》第一个错误 需求: 更快捷高效的编译方式 make工程管理器就应运而生了如何使用: 1.首先创建源文件:main.c ad...
2018-05-22 22:58:23 195
原创 数据类型
基本数据类型:int float char double long short数据为啥要有数据类型1.表示的数的种类不一样:整数和小数。2.跟所取的取值范围有关。我们计算机里面的变量是需要介质来保存的;——》为了给变量或者数据分配“合适”的储存空间(既不能浪费,也不能空间不够)size of:运算符,不是函数 ——》计算字符长度的时候,将‘\0’计算在内st...
2018-05-21 21:56:34 200
原创 gdb调试
gdb的主要作用就是用来调试代码的错误,可以做到单步调试或者从一个断点执行到下一个断点,甚至是改变当前程序的执行条件,按照我们设定的条件进行执行,总归一句话:调试查找错误和让程序按照我们设定的条件去执行。 gcc -g countnine.c -o demo1 -g 加入调试信息到可执行文件里面; gcc countnine.c -o demo2 ...
2018-05-19 21:37:27 157
原创 动态库的封装
以 add.c 为例1.创建库函数的源文件:vim add.c2.生成目标文件:gcc -c add.c -fpic3.生成动态库:gcc add.o -o libadd.so -shared 备注:libadd.so:lib是前缀,add是库的名字,so是后缀,代表是动态库4.建立调用库函数的源文件:vim demo.c5.编译执行:gcc demo.c ./libadd....
2018-05-19 21:20:26 332
原创 gcc编译
gcc编译工具链1.什么是编译器? 机器只能够识别0和1的机器语言,不能识别高级语言编写的程序。 高级语言编写的程序——》机器语言——》编译器(承担翻译官的角色,编译器也是一个程序)。2.有了编译器有什么好处? 让人可以编写更适合人类思维的高级语言,而不用编写机器语言程序,也不用考虑怎样将高级语言转化为机器语言。...
2018-05-18 17:50:01 227
原创 编程实现查找子串个数
/************************************************************************* > 文件名 lookup.c > 作者: 蔡毅 > 邮件: 1768250595@qq.com > 创作时间: 2018年05月17日 星期四 22时56分45秒 ******************...
2018-05-18 00:36:00 541
原创 vim编译器
vi 文件名vim文件名 首先进入”一般模式”:下面会显示文件的名字 一般模式——》编辑模式:按下a键或者i键或者g键,下面会显示insert,写好之后要保存退出,在“编辑模式”下按esc键,回到“一般模式”,然后再按shift+:,进入到“底行模式”在底行模式下,可输入wq(保存退出)wq!(强制保存退出)q!(不保存退出) 操作:(在windows中文档软件)可能有的操作) ...
2018-05-17 00:28:19 650
原创 Linux 文件创建2
1.touch和mkdir命令的验证方法 用 ls -l 和 tree 命令2.touch 9.avi中9.avi为什么不是合法的 用touch命令创建的文件就是一般文件,至于文件的后缀,它只是一个后缀或者是一个标志;当你用视屏软件打开.avi文件或者用画图软件打开.jpeg的时候,视屏软件或画图软件会首先检查文件的头部信息,看看是不是合法的.avi文件或者.jpeg文件,如果不是的话...
2018-05-13 21:58:02 415
原创 5.12 学习总结
今天的学习内容主要为以下三个方面1.什么是嵌入式2.为什么要学习嵌入式3.Linux系统的基本使用 1.什么是嵌入式 简单地说嵌入式系统是专用的计算机系统,像手机,空调,飞机,坦克,导弹等等都离不开嵌入式系统。从技术角度: 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。从系统角...
2018-05-12 22:34:51 220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人