
C/C++
文章平均质量分 90
小余的自习室
多年Android开发者,对Android移动端开发有一定的深入探索
展开
-
【重学C/C++系列(八)】:如何理解C++中的void*?
首先void*中的void代表一个任意的数据类型,"星号"代表一个指针,所以其就是一个任意数据类型的指针。对于指定数据类型的指针如int* ,double*等,他们的sizeof都是4个字节,因为都是一个指针,只是指针指向的数据类型不一致。C语言是一个强类型的语言,那么他们之间有什么区别呢?前面一篇文章我们说过,指针+1和-1是和指向数据类型有关的。原创 2023-02-13 09:40:48 · 2043 阅读 · 0 评论 -
【重学C/C++系列(七)】:文件操作基础
内存中的数据在断电之后就会消失,如果需要持久化数据,则需要将数据写入到文件中C++中使用输入流和输出流来操作文件:输入流起点和输出流的终点都可以是磁盘文件:cout是输出流的终点,可以把cout就看成是一个文件描述符,数据顺着从cin文件中流到buf数组中C++中读写文件有两种文件格式文件信息采用ASCII码进行存储,每个字符占用一个字节文件信息和内存中的信息一致,也就是二进制格式,一般情况下比较难看懂。原创 2023-02-10 10:37:38 · 93 阅读 · 0 评论 -
【重学C/C++系列(六)】:函数指针
前面一篇文章我们讲解了C/C++中关于指针的用法,但是当时局限的是对变量的指针,对函数这块并未讲解,其实函数也是有地址的。在程序中定义一个函数,则编译时系统就会为这段代码分配一段存储空间,这段存储空间的首地址称为函数的地址,且函数名代表的就是这个地址。既然是地址就可以使用一个指针变量来存储这个地址,这个指针变量就就叫做函数指针。函数返回值类型 (* 指针变量名) (函数参数列表);例如:int (*p)(int,int)原创 2023-02-09 11:55:43 · 106 阅读 · 0 评论 -
【重学C/C++系列(五)】:C++中的面向对象编程全解析
C++作为一门在C和Java之间的语言,其既可以使用C语言中的高效指针,又继承了Java中的面向对象编程思想,在去年编程语言排行榜上更是首次超过Java,进入前三。【重学C/C++系列(三)】:这一次彻底搞懂指针和引用今天这篇文章就来讲解下C++中的面向对象编程思想。封装,继承和多态。本篇文章就以这三个特性展开。封装,继承以及多态以及对象编程中模板编程,虚函数,构造函数,析构函数,拷贝构造,操作符重载等知识, 知识点还是比较多的,需要好好消化下。原创 2023-02-09 11:48:05 · 334 阅读 · 0 评论 -
【重学C/C++系列(四)】:函数体hack过程详解
首先来说下什么是hack?hack字面意思“非法入侵”,那么在C/C++中其实就是使用反汇编查看C/C++代码对应的汇编代码。那可能有人要问了,C/C++不是高级语言么,为什么还要看汇编代码?理由嘛见仁见智,1.C/C/C++应用不像java,python那样,报错信息可以在日志中一目了然,C/C++应用的报错可以让你查的怀疑人生,为什么呢?因为报错日志提供的信息可能会误导你,比如真实错误是在100行,但是报错信息会在第一行或者全局都有报错,就很让人上头。。原创 2023-02-08 11:39:00 · 4013 阅读 · 0 评论 -
【重学C/C++系列(三)】:这一次彻底搞懂指针和引用
相信学过C++都知道指针以及引用,C++中使用指针是为了兼容C语言,而使用引用是为了更加贯彻面向对象编程思想,今天小余就来和大家聊聊关于C++中指针以及引用。计算机内存单元内容以及地址内存由很多内存单元组成,这些内存单元用于存放各种类型的数据。**计算机对每个内存单元都做了编号,这个编号就是内存地址,这个地址决定了内存单元在内存中的位置。**这些内存单元很复杂,人为很难记住,所以这些C++编译器通过变量名来访问这些内存地址。本篇文章对C++中的指针以及引用做了较为详细的讲解。1.指针的基本概念。原创 2023-02-07 14:25:50 · 418 阅读 · 0 评论 -
【重学C/C++系列(二)】:extern关键字用法全解析
extern 是C/C++语言中表明全局变量或者函数作用范围(可见性)的关键字,编译器收到extern通知,则其声明的变量或者函数可以在本模块或者其他模块使用。对于函数而言,由于函数的声明如“extern int method();”与函数定义“int method(){}”可以很清晰的区分开来,为了简便起见,可以把extern关键字省略,于是有了我们常见的函数声明方式“int method();”,然而对于变量并非如此,变量的定义格式如“int i;”,声明格式为“extern int i;原创 2023-02-06 17:24:44 · 1841 阅读 · 0 评论 -
重学C++系列(一):从C到C++
作为一个Android开发者,可能你觉得我是不是跑错场了,Android开发又用不到C++的知识。。额,如果你这么觉得,只能说明你还是一个Android基础开发者,C++在高级领域,如性能优化,NDK,音视频,framework,ART虚拟机等都使用的它,所以学习C++对我们Android开发其实非常必要。本篇是重学C++系列的第一篇,希望文章对你有启发。原创 2023-01-12 16:32:28 · 452 阅读 · 0 评论