随笔分类 -  C / C++

摘要:指向引用的指针 简单使用指针的一个例子就是: int a = 1; int *p = &a; 预先强调: 没有指向引用的指针 原因: 因为引用 不是对象,没有地址。 但是指向引用的指针是什么形式呢?是对一个引用进行如下取地址吗? int v = 1; int &ri = v; // 整型变量v的引用 阅读全文
posted @ 2020-11-27 15:55 FreeK0x00 阅读(357) 评论(0) 推荐(0)
摘要:C++ 中 重载、重写、重定义的区别 重载(overload) 定义: 在同一个作用域内,两函数的函数名相同, 参数不相同(可以是参数类型不同或者是参数个数不同), 那么就说这两个 函数重载。 **分类:**函数重载 和 运算符重载 (本质都一样) 注意: 返回值类型 不是 函数重载判断依据。 成员 阅读全文
posted @ 2020-11-27 15:54 FreeK0x00 阅读(439) 评论(0) 推荐(0)
摘要:前言 学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。 —— 法布尔 简介 随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移动互 阅读全文
posted @ 2020-11-27 15:47 FreeK0x00 阅读(2721) 评论(0) 推荐(1)
摘要:内存模型图(4G) 整体简单说明 32位CPU可寻址4G线性空间,每个进程都有各自独立的4G逻辑地址,其中 0~3G是用户空间,3~4G是内核空间即3G用户空间和1G内核空间,不同进程相同的逻辑地址会映射到不同的物理地址中。 各段详细说明 静态区域: text segment(代码段):包括只读存储 阅读全文
posted @ 2020-11-27 15:45 FreeK0x00 阅读(554) 评论(0) 推荐(0)
摘要:C++类默认拷贝构造函数的弊端 C++类的中有两个特殊的构造函数,(1)无参构造函数,(2)拷贝构造函数。它们的特殊之处在于: (1) 当类中没有定义任何构造函数时,编译器会默认提供一个无参构造函数且其函数体为空; (2) 当类中没有定义拷贝构造函数时,编译器会默认提供一个拷贝构造函数,进行成员变量 阅读全文
posted @ 2020-11-27 15:42 FreeK0x00 阅读(776) 评论(0) 推荐(0)
摘要:C++ 函数模板实现机制原理剖析 重点 编译器并不是把函数模板处理成能够处理任意类的函数 编译器从函数模板通过具体类型来产生不同的函数 编译器会对函数模板进行两次编译 (1)在声明的位置对模板代码进行编译 (2)在调用的位置对参数替换后的代码进行编译 示例 自己的代码: #include<iostr 阅读全文
posted @ 2020-11-27 15:40 FreeK0x00 阅读(2365) 评论(4) 推荐(2)
摘要:前言 有时我们希望某些常量只在类中有效。由于#define定义的宏常量是 全局 的,不能达到目的,于是想当然地觉得应该用 const修饰 数据成员来实现。const数据成员的确是存在的,但其含义却不是我们所期望的。const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创 阅读全文
posted @ 2020-11-27 15:38 FreeK0x00 阅读(536) 评论(0) 推荐(0)
摘要:C++ 函数模板和函数重载同时出现如何调用 重点 函数模板不允许自动转换,普通函数可以进行自动类型转换 函数模板可以像普通函数一样被重载 C++编译器优先考虑调用普通函数 如果函数模板可以产生一个更好的匹配,则选择模板函数 可以通过空模板实参列表的语法限定编译器只调用模板函数 示例 #include 阅读全文
posted @ 2020-11-27 15:36 FreeK0x00 阅读(362) 评论(0) 推荐(0)
摘要:变量定义 变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。 变量声明 用于向程序表明变量的类型和名字。程序中变量可以声明多次,但只能定义一次。 变量的类型 (1)自动存储变量: 在函数定义中声明的变量(包括函数参数)。当函数或代码块执行时创建变量,当函数 阅读全文
posted @ 2020-11-27 15:30 FreeK0x00 阅读(293) 评论(0) 推荐(1)
摘要:#pragma once 与 #ifndef 的作用 (1)在C/C++中,在使用预编译指令#include的时候,为了防止重复引用造成二义性。 (2)在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 #pragma once 与 #ifndef 的用法 #p 阅读全文
posted @ 2020-10-11 21:12 FreeK0x00 阅读(421) 评论(0) 推荐(0)
摘要:C++ new 运算符 用法总结 使用 new 运算符 分配内存 并 初始化 1.分配内存初始化标量类型(如 int 或 double),在类型名后加初始值,并用小括号括起,C++11中也支持大括号。 int * pi = new int (6); double * pd = new double 阅读全文
posted @ 2020-10-11 21:11 FreeK0x00 阅读(3749) 评论(0) 推荐(1)
摘要:数组类型语法总结 数组指针 和 指针数组 区分 数组指针是一个指针,只对应类型的数组。指针数组是一个数组,其中每个元素都是指针 数组指针遵循指针运算法则。指针数组拥有c语言数组的各种特性 数组类型重命名 C 通过 typedef 为数组类型 重命名 **格式 : **typedef type (na 阅读全文
posted @ 2020-10-11 21:09 FreeK0x00 阅读(296) 评论(0) 推荐(0)
摘要:C 函数指针语法总结 函数指针 定义 每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。 注意:函数指针的本质是一个指针变量,且指针指向的函数的入口地址。 语法 返回类型 (*函数名) (参数表); 例: #include <iostream> using nam 阅读全文
posted @ 2020-10-11 21:08 FreeK0x00 阅读(206) 评论(0) 推荐(0)