
C++成长之路
文章平均质量分 70
这一次要坚持下去
乔qiao
人生的意义在于成就
展开
-
C++之内存相关
C++之内存相关C++之内存相关MemcpyMemove64位和32位区别以及堆栈内存堆栈和数据堆栈的差别内存分区栈实现堆和队列队列和多线程指针运算符和函数机制多线程参数传递四大内存分配函数及mallocfreeC++之内存相关Memcpyint a[10] = { 1,2,3,4,5,6,7,8,9,0 }; int *p = malloc(sizeof(int) * 10); memcpy(p, a, 40); for (int i = 0; i < 10; i++) { pri原创 2021-04-20 00:45:32 · 381 阅读 · 1 评论 -
C++之字符串
C++之字符串C++之字符串字符串初始化字符串使用注意字符串排序及strcmp实现StrlenStrcpyStrstrStrset字符串大小写转换lwr/upr字符串二级指针字符串数组Str与int转换AtofFtoa可变参数mprintf实现Strcpy/strchr/strcat/strcat宽字符函数Strcmpi/strncmpstricmp/strnicmp删除空格及加减法乘除法括号删除多个重复字符与字符串字符串切割字符穿sprintfStr基础函数StrerrorStrtodtol字符串转换字符原创 2021-04-19 00:21:58 · 412 阅读 · 0 评论 -
C++之符号、数组、链表
C++之符号与数组符号双冒号::C和c++结构体定义差别数组数组实战符号双冒号::局部变量和全局变量重名的时候,在c++中可以通过::来引用全局变量。C和c++结构体定义差别在c语言中,结构体变量不能在定义的时候赋值初始化,但是c++是可以的。C语言中,结构体定义变量必须加struct,而c++可以不加。C++相对于c更加灵活。数组数组名是一个常量不能修改也不能赋值数组不能批量进行操作二维数组,第一维可以省略,第二维不能省略二维数组可以看作一个一维数组,数组中的每个元素都是一个一维数原创 2021-04-11 23:26:15 · 352 阅读 · 0 评论 -
C++之关键概念
C++之关键概念C++之关键概念生存区作用域可见-day44-5全局变量和局部变量全局变量和局部变量Register变量extern变量-day44-9Static-day44-6Auto变量StaticC++之关键概念生存区作用域可见-day44-5作用域,全局变量,那么可以说作用域是全局,但不等价于作用范围。此时此刻可以访问的作用范围是可见域。全局变量和局部变量Int a = 10;Int b=a+1;//这种写法是错的,因为全局变量和静态全局变量,初始化不能使用变量,只能使用过常量。全原创 2021-04-11 23:18:31 · 161 阅读 · 0 评论 -
C++之结构体、共用体、位域
C++之结构体结构体定义-day28-4初始化的三种形式-day28-6结构体引用和深浅拷贝-day28-11头文件作用和结构体声明-day28-12结构体赋值原理-day28-13结构体嵌套实现继承-day28-14结构体数组-day29-1结构体动态数组结构体大小指针和结构体函数跨数据传递数-day44-3Typedef结构体和共用体共用体初始化起别名共同体共用体地址共用体size最宽字节共用体初始化位域位域,限制数据的位数,节约内存实战低位在低字节,高位在高字节结构体定义-day28-4需要注意原创 2021-04-05 22:31:16 · 838 阅读 · 0 评论 -
C++之指针
这里写目录标题指针指针的大小空指针通过指针修改const指针运算指针运算数组指针指针指针的大小取决于编译器位数,如果是X86是32,如果是X64是64;没有赋值的指针成为野指针,所以指针所指向的变量一般需要进行初始化,不然的话,指针指向的位置有可能是系统地址的部分。Void *p =NULL;取地址是在寄存器中,不占内存;所谓的地址实际是计算机总线,作为一个常量,不占内存;但是指针如果作为一个变量存在,是消耗内存的,比如*p = &num空指针void *p;是合法的,因为所有指针原创 2021-03-28 18:25:46 · 452 阅读 · 0 评论 -
C++之函数
这里写目录标题函数函数调用副本机制函数参数运算顺序(存疑,需要复习)全局变量和局部变量函数声明和定义的差别数组编译和链接函数指针(需要复习)劫持函数函数调用每一个应用程序都有函数表,每个表格存储函数的地址,改变地址可以改变行为不允许在一个函数内部再定义一个函数当函数值为整型时,可以省略,因为默认是int类型main(){}—省略返回值通过栈来实现函数的执行副本机制函数的副本机制—函数的内部变量—实参和形参,参数的传递是单向传递C语言传参的时候应该尽量保证类型一致,参数个数一致,如果不对,原创 2021-03-28 18:07:26 · 143 阅读 · 0 评论 -
C++之基础知识二
这里写目录标题基础知识Switch静态库lib/a动态库dll/soRegister寄存器变量Volatile关键字基础知识SwitchSwitch只能进行相等与否的判断,无法进行比较大小。Switch无法处理浮点数,只进行整数的判断,而且必须是常量。 If else与switch结合使用Switch分支有无break的区别:break起到一个中断的作用,如果不加break,switch相当与一个开关,其后的所有情况都会执行。静态库lib/a一个单独的函数动态库dll/soRegister寄原创 2021-03-28 17:53:08 · 122 阅读 · 0 评论 -
C++之基础知识一
基础知识内存变量原理掌握赋值内存和寄存器如何配合的_asm{ Mov eax, num;Add num, 15;Mov num, eax;}//寄存器操作由于cc++变量只是定义之后没有做初始化,是垃圾数据,所以要求变量一开始必须先做初始化,而python/java等语言,定义之后会默认赋值为零。进制int num = 012;//0是八进制的表示 0x是十六进制printfprintf不会对数据进行数据类型的转换数据类型二进制的位数不能无限使用,整数有一定的大小限制,只能原创 2021-03-28 17:07:59 · 419 阅读 · 0 评论 -
C++之常用转义字符
转义字符 意义 Ascii码值\a 响铃 \b 退格,将当前位置移动到前一列 \f 换页 \n 换行 \r 回车,将当前位置移动到本行开头 \t 水平制表 \v 垂直制表 \ 反斜杠 \’ 单引号 \” 双引号 \0 空字符 \ddd 一到三位八进制数表示的任意字符 \xhh 一到二位十六进制数表示的任意字符...原创 2021-03-28 16:26:31 · 321 阅读 · 0 评论 -
C++ vector介绍
一、什么是vector?向量是一个封装了动态大小数组的顺序容器。存储的对象可以各种各样,是普通数组类型的扩展。可以认为,向量是一个可以存储任意类型的动态数组。二、容器特性顺序排列也就是线性排列,通过元素的位置可以访问对应的元素。动态数组所谓动态,是指容器中的元素可以进行增加删除等操作,同时可以将数组的大小进行调整。内存分配管理容器使用一个内存分配器对象来动态地处理它的存储需求。三、基本函数实现构建函数增加函数删除函数遍历函数大小函数其他函数四、基本用法include原创 2021-02-10 17:40:32 · 219 阅读 · 0 评论 -
C++字符、字符串、字符数组、字符串指针、指针数组
作者:qxl 邮箱: 1183129553@qq.com系列文章链接一、C++ 字符、字符串、字符数组、字符串指针、指针数组文章目录系列文章链接前言一、字符指针、字符数组字符指针字符数组二、字符串指针三、(字符串)指针数组四、常用方法参考前言为了深入理解C++,并时常回顾学过的知识点,对C++知识点进行记录总结。参考1一、字符指针、字符数组字符指针 字符指针的存储方式:字符指针变量本身是一个变量,用于存放字符/字符串的首地址。字符串本身是存放在以该首地址为首的一块连续的原创 2021-02-10 12:45:57 · 349 阅读 · 0 评论 -
C++ 刷题记录
C++ 刷题记录贪心算法Assign Cookies (Easy)Candy (Hard)贪心算法Assign Cookies (Easy)有一群孩子和一堆饼干,每个孩子有一个饥饿度,每个饼干都有一个大小。每个孩子只能吃最多一个饼干,且只有饼干的大小大于孩子的饥饿度时,这个孩子才能吃饱。求解最多有多少孩子可以吃饱。Candy (Hard)一群孩子站成一排,每一个孩子有自己的评分。现在需要给这些孩子发糖果,规则是如果一个孩子的评分比自己身旁的一个孩子要高,那么这个孩子就必须得到比身旁孩子原创 2020-12-16 14:10:51 · 267 阅读 · 0 评论 -
C++系列之#if、if、#ifdef、#if defined之间的区别
条件编译是属于c语言预处理部分的内容,是编译器编译最开始处理的内容。如果宏条件符合,则编译,否则编译器就忽略这段代码,不编译此部分。(编译不等同于执行)#if A 0 code…#endif#ifndef code…#endif#ifdef code…#endif#ifdef的使用和#if defined()的用法一致#ifndef又和#if !defined()的用法一致。决定是否编译参考【1】https://blog.youkuaiyun.com/freeWayWalker/artic原创 2020-12-01 12:00:36 · 696 阅读 · 0 评论 -
如何理解ndk
如何理解ndkJNIndk---android本地开发工具包JNIJNI–java native interface如果用一句话来总结,JNI是一个协议,这个协议可以使得Java和c/c++代码互相调用。ndk—android本地开发工具包通俗的来讲,NDK就是帮助我们可以在Android应用中使用C/C++来完成特定功能的一套工具主要功能:1.首先NDK可以帮助开发者“快速”开发C(或C++)的动态库。2.其次,NDK集成了“交叉编译器”。使用NDK,我们可以将要求高性能的应用逻辑使用C原创 2020-11-25 11:46:25 · 285 阅读 · 0 评论 -
sourceinsight使用记录
sourceinsight使用点滴记录项目管理界面使用操作技巧项目管理将文件进行关联:Project -> Synchromize Files…界面使用显示函数之间调用关系Relation点击设置出现对话框,选择调用关系操作技巧高亮显示 -F8乱码处理:File->Reload As Coding ->system ANSI coding进入子函数:Ctrl + 鼠标左键参考:【1】https://blog.youkuaiyun.com/Cheatscat/artic原创 2020-11-25 11:15:42 · 342 阅读 · 0 评论