c学习
针对于c++语言的各种学习
wangxin_studying
从事自动驾驶相关工作
展开
-
数据结构-树的引入
树的定义由一个或多个节点组成的有限集合,有且只有一个节点为根(root),当节点数(n>1)时,其余节点分为m个互不相交的有限集合,每个集合本身也是一颗树,被称为根的子树。树的结构特点(1)非线性结构,有一个直接前驱,但可能有多个直接后继(2)树的定义具有递归性,树有子树的概念(3)树可以为空,此时结点个数为0若干术语(1)结点的度:结点的子树个数(一个结点含有的子结点的个数称为该结点的度)(2)树的度:树的所有结点中最大的度数(A、D的度最多为3)(3)叶结点:度为0的结点(EK原创 2020-10-30 21:33:07 · 275 阅读 · 0 评论 -
C语言——文件的不同访问模式
访问方式描述r打开一个已有的文本文件,允许读取文件。w打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度(被覆盖),重新写入。a打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。r+打开一个文本文件,允许读写文件。w+打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度(被覆盖...原创 2020-08-30 21:31:49 · 387 阅读 · 0 评论 -
C语言——const关键字第二讲
之前记录过const关键字的笔记,参见C语言——const关键字这里补充一下新的理解。 const 修改全局变量不能进行修改(直接和间接都不行)#include <stdio.h>const int a = 10; //const修改的是全局变量int main(){ int *p = &a; //a = 20;// 这样写会报错 assignment of read-only variable ‘a’ return 0;原创 2020-08-15 11:01:53 · 125 阅读 · 0 评论 -
C语言——内存四区
之前在做C语言中关键字extern和static的笔记的时候,对于内存四区进行过简单的解释,这里再补充写一下自己对于内存四区的理解。内存四区主要是指栈区、堆区、全局区、代码区,以下是关于各区域的定义。栈区(stack): 编译器在需要的时候进行分配,在不需要的时候自动清除。里面的变量通常是函数的返回地址、参数、局部变量、返回值等。所以,经常会出现参数的入栈和出栈说法。堆区(heap): 一般由程序员分配和释放,例如c语言中的malloc和free以及C++中的new和delete。全局区(静态区):原创 2020-08-15 10:32:52 · 252 阅读 · 1 评论 -
C语言——介绍数据类型
在C语言中定义了很多数据类型,这篇文章主要用于记录我对于数据类型的理解。 对于C语言为什么需要数据类型这个东西呢?其实数据类型是为了更好的进行内存的管理,告诉编译器需要分配多少内存。 比如:我们定义int a = 10; 对于整数10来说,采用int类型就绰绰有余,因为int 类型可存放-231 ~ 231-1。基本上来说采用int 类型满足了大部分的计算。 下面说说数据类型的分类。数据类型内容基本类型整型(int、floa原创 2020-08-09 20:59:32 · 127 阅读 · 0 评论 -
vscode单步调试
在公司工作的时候,经常会使用到Ubuntu系统,通常在开发大型项目的时候,只能够catkin_make整个包,如果想要但不调试一些局部代码,会变得比较困难。很多人会首选printf,逐行打印法。这种方法虽然可以输出自己想要的结果,但是操作起来还是费时费力。 其实可以采用vscode进行单步调试。这里需要修改以下几个文件。第一,在对应需要编原创 2020-08-04 22:51:04 · 4821 阅读 · 0 评论 -
C语言学习——如何理解指针第一讲
C语言里,变量存放在内存中 ,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。存储在内存中的变量都有一个地址,指针就是指向变量内存地址的特殊变量。 在C语言中,以32位进行编译,指针变量均为4个字节。以上就是对于指针比较基础的概念,以下说说自己对于指针的原创 2020-08-03 22:31:10 · 193 阅读 · 0 评论 -
C语言——extern和static
在解释这个关键字之前:先解释一下内存四区,在执行一个C语言程序时,程序存在:栈区、堆区、全局区(静态区)、代码区。栈区(stack): 编译器在需要的时候进行分配,在不需要的时候自动清除。里面的变量通常是函数的返回地址、参数、局部变量、返回值等。所以,经常会出现参数的入栈和出栈说法。堆区(heap): 一般由程序员分配和释放,例如c语言中的malloc和free以及C++中的new和delete。全局区(静态区): 全局变量和静态变量被分配到同一块内存中。代码区: 可以简单理解为存放代码的区域。原创 2020-08-02 22:54:37 · 182 阅读 · 0 评论 -
C语言——const关键字
在c语言中的const是一个比较有意思的存在,明明一点作用都不起,但是却作为一个关键字离奇存在。值得注意的是,在C++中优化了const的用法,这里只针对C语言中的const用法,写一下自己的看法。第一种 const int aconst int a和 int const a表达效果一致。//采用ubuntu16.04 gcc编译#include<stdio.h>int main(){ const int a = 10; //a = 20; 这里直接修改会报错,因为原创 2020-08-02 21:44:10 · 199 阅读 · 0 评论 -
C语言学习——数组首地址的理解
数组是一种数据格式,能够存储多个同样类型的值。以下主要以int型数组为例。一维数组:例如:int score[10]={1,2,3,4,5,6,7,8,9,0};通常我们在遍历这个数组的时候会书写:#include<iostream>using namespace std;int main(){ int score[10]={1,2,3,4,5,6,7,8,9,0}; for (int i = 0; i < 10;i++) { cout原创 2020-08-02 16:29:53 · 9735 阅读 · 1 评论 -
C语言基础学习——变量类型
c语言变量类型在计算机中,内存的基本单元是位(bit),我们通常所说的1个字节是8位内存单元。常用变量类型:char: 字符型类型32位编译器64位编译器取值范围(32位下)char110~255short int22-215 ~215-1unsigned int440 ~232-1int44-231 ~231-1float44-3.41038, 3.41038double88-1.710-308 ~1.710原创 2020-08-01 23:53:43 · 869 阅读 · 0 评论 -
数据结构——线性表(链表)单循环链表
之前有讲过链表的介绍以及链表抽象数据类型,现在接着完善单循环链表。一般我们所见到的单链表就是如下图所示:但是如果链表中的最后一个结点中的地址域并不是指向空而是指向头指针的位置,或者指向第一个元素的位置(这两种说法是一个意思)。那么这里的链表就构成了单循环链表了。单循环链表的存储结构和之前别无二致。比较大的区别是,我们再做单循环链表的时候更习惯用尾指针(如上图所示),使用尾指针最大的优点就...原创 2019-11-28 21:31:09 · 947 阅读 · 0 评论 -
数据结构——线性表(链表)完善
之前的文章《数据结构——线性表(链表)介绍》里面有关系单链表的介绍,有不清楚的可以自行查阅。接下来会直接介绍单链表实现的各个函数:原创 2019-11-26 21:41:34 · 138 阅读 · 0 评论 -
数据结构——线性表(链表)介绍
链表介绍之前有讲到线性表中的顺序表,这里给大家介绍一下链表。顺序表顾名思义内部的元素是在内存中统一整齐的排列的,只要找打首地址,通过移动指针就知道可以找到下一个元素,链表在内存中就不一定是连续的,一般来说第一个元素和第二元素在内存中距离很远,这时候如果需要找到第二元素该怎么办呢?这里就不能够使用顺序表中移动指针的形式了,这里需要设计到链表的结构。如上图所示,对于链表来说,存在一个头指针指向...原创 2019-11-24 20:33:30 · 276 阅读 · 0 评论 -
数据结构————线性表(顺序表)
线性表是一种最简单、最常见的数据结构。线性表是零个或者多个元素的有限系列。线性表如果用一段地址连续的存储空间依次存储元素,这种线性表就是顺序表。【例如数组】【a1,a2,a3,…,an】其中,上面就是一个数组,除了第一个元素a1外,每个元素前面都有且仅有一个前驱元素,同样除了最后一个元素an外,每一个元素后面有且仅有一个后继元素。每个元素的位置相对来说是确定的,可以通过初试位置的指针移动确定...原创 2019-11-15 15:48:12 · 166 阅读 · 0 评论 -
数据结构————引入
注意:接下来一段时间,本人将系统的学习C++的数据结构知识,这一块所做的整理也是学习了很多东西归纳总结的不一定全部正确,如有问题也会随时修改。由于是学习的角度所以重在理解,一些基本的解释和标准的定义也可能会有一定出入,请不要见怪,大家相互学习。数据:一般来说,数据是信息的载体,是描述客观事物的符号,在这里研究的数据是能够被计算机识别并操作的。数据元素:是数据的基本单位,一个数据元素可以由若干个...原创 2019-11-14 20:53:10 · 153 阅读 · 0 评论