摘要: 大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址端。 小端模式:是指数据的高字节保存在内存的高地址中,低位字节保存在在内存的低地址端。 1) 直接读取存放在内存中的十六进制数值,取低位进行值判断 int a = 0x12345678; int *c = &a; c[0 阅读全文
posted @ 2021-08-30 18:54 默行于世 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 1. 结构体(struct) 1.1 结构体的概念 结构体(struct):是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。 结构体(struct):是一种复合数据类型,结构类型。 注:“结构”是一种构造类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构 阅读全文
posted @ 2021-08-30 18:52 默行于世 阅读(324) 评论(0) 推荐(0) 编辑
摘要: this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。下面是使用 this 的一个完整示例: #include <iostr 阅读全文
posted @ 2021-08-30 16:41 默行于世 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 三种访问方式 ① public:用该关键字修饰的成员表示公有成员,该成员不仅可以在类内可以被访问,在类外也是可以被访问的,是类对外提供的可访问接口;可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问。 ② private:用该关键字修饰的成员表示私有成员,该成员仅在类内可以被访问 阅读全文
posted @ 2021-08-30 14:44 默行于世 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 拷贝构造函数 1) 拷贝构造函数的作用就是用来复制对象的,在使用这个对象的实例来初始化这个对象的一个新的实例。 2) 参数传递过程到底发生了什么? 将地址传递和值传递统一起来,归根结底还是传递的是"值"(地址也是值,只不过通过它可以找到另一个值)! i)值传递: 对于内置数据类型的传递时,直接赋值拷 阅读全文
posted @ 2021-08-30 14:39 默行于世 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 隐式转换 1. C++的基本类型中并非完全的对立,部分数据类型之间是可以进行隐式转换的。所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。 2. C++面向对象的多态特性,就是通过父类的类型实现对子类的封装。通过隐式转换,你可以直接将一个子类的对象使用父类的类型进行返回。在比如,数值和 阅读全文
posted @ 2021-08-30 14:21 默行于世 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 1) extern修饰变量的声明 如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。 2) extern修饰函数的声明 如果文件a.c需要引用b.c中的函数,比如在b.c中原型是int fun(int mu),那么就可以在a.c中声明e 阅读全文
posted @ 2021-08-30 11:26 默行于世 阅读(96) 评论(0) 推荐(0) 编辑
摘要: static关键字的用法 先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 static的第二个作用是保持变量内容的持久。(static变量中的记忆功能和全局生存期)存储在静态数据区的 阅读全文
posted @ 2021-08-30 11:21 默行于世 阅读(142) 评论(0) 推荐(0) 编辑
摘要: mutable关键字 1) 如果需要在const成员方法中修改一个成员变量的值,那么需要将这个成员变量修饰为mutable。即用mutable修饰的成员变量不受const成员方法的限制; 2) 可以认为 mutable 的变量是类的辅助状态,但是只是起到类的一些方面表述的功能,修改他的内容我们可以认 阅读全文
posted @ 2021-08-30 11:16 默行于世 阅读(37) 评论(0) 推荐(0) 编辑
摘要: const关键字的用法 1)阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了; 2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const; 3)在一个函数声明中,con 阅读全文
posted @ 2021-08-30 11:14 默行于世 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 1. 引入inline关键字的原因 在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。 栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。 在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序 阅读全文
posted @ 2021-08-30 11:05 默行于世 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 1.简单的例子 1.1 Code //simple.cpp #include <iostream> #include <string> using namespace std; int main(int argc, char** argv) { typedef unsigned char uchar 阅读全文
posted @ 2021-08-30 10:57 默行于世 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 什么是define 宏定义,简单的理解就是替换,其实这也是本质。如果熟悉g++编译过程的话,会了解到一个概念叫做预处理,就是在编译之前做个处理。这个过程并不像编译那么复杂,就是简单的递归替换和删除。替换的就是宏定义和include文件,删除注释。注意这里我们谈到一个概念,递归替换,这个其实是很常见的 阅读全文
posted @ 2021-08-30 10:22 默行于世 阅读(91) 评论(0) 推荐(0) 编辑