C/C++
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
个人总结之重载、重定义、重写的区别
C++中发生继承时,常常或伴随着子类和父类之间函数或是数据成员的复制、重定义、重写;或是在本类中发生重载; 1、复制 当发生继承时,子类将会 复制父类 的全部成员;因此我们可以认为在子类中存在两个域:子类域、父类域; 2、重定义(redefine)又叫隐藏,遮掩 隐藏是指派生类的函数屏蔽了与其同名的基类函数。注意只要同名函数,不管参数列表是否相同,基类函数都会被隐藏,而不是在派生类中发生重载。 特性: 不在同一个作用域(分别位于派生类与基类) 函数名字相同 返回.原创 2020-07-08 15:30:24 · 516 阅读 · 0 评论 -
个人总结之C++实现二叉树遍历(全)
#include<iostream> #include<stack> #include<queue> #include<vector> #include<algorithm> using namespace std; /*输入实例 1 2 3 4 5 6 7 -1-1 -1-1 -1-1 -1-1 此树的前序遍历为:1 2 .原创 2020-07-02 21:01:50 · 614 阅读 · 0 评论 -
学习笔记之C++异常处理
程序的错误大致可以分为三种,分别是语法错误、逻辑错误和运行时错误:运行时错误是指程序在运行期间发生的错误,例如除数为 0、内存分配失败、数组越界、文件不存在等。C++ 异常(Exception)机制就是为解决运行时错误而引入的。 C++异常处理机制 C++语言的异常处理机制通过3个关键字throw、try和catch实现。 try:检测可能的会出现的语句范围; throw:抛出异常; catch:捕获抛出的异常; try{ // 可能抛出异常的语句 } catch(excepti.原创 2020-07-02 09:58:56 · 462 阅读 · 0 评论 -
数据结构中树基础知识总结
树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中: (1)有且仅有一个特定的称为根(Root)的结点; (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tm,其中每一个集合本身又是一棵树; 结点拥有的子树数称为结点的度 (Degree) 。 度为 0 的结点称为叶结点(Leaf) 或终端结点;度不为 0 的结点称为非终端结点或分支结点。 树的度是树内各个节点度的最大值。结点的子树的根称为该结点的孩子(Child.原创 2020-06-20 21:37:30 · 1191 阅读 · 1 评论 -
C/C++中数据大小、字节对齐、内存占用总结
数据大小获取 sizeof()操作符,求占用空间,对数组而言大小为 type大小 * 数据个数; int a[] = {1,2,3,4,5} sizeof(a) = 20 sizeof(&a) = 4 特殊的:在string时,由于字符串本质上就是自带‘\0’结尾的 char[] 数组,而char 的大小有恰好为1, 因此sizeof()就正好会是数组的长度; 在C++98中是不允许对类的非静态成员变量使用sizeof()的,而在C++11中是合法的; 根据 C99 规定,size..原创 2020-05-21 19:09:58 · 4051 阅读 · 9 评论 -
C/C++ 内存分区与内存分配
内存分布 站在汇编语言的角度,一个程序分为:代码段--CS 数据段--DS 堆栈段--SS 扩展段--ES 站在高级语言的角度,根据APUE,一个程序分为如下段:text data(initialized)bss heap stack; 存储时存在3个区域,分别是:代码段、数据段以及BSS段; 当程序被加载到内存单元时(即运行,此时可称之为: 进程),则需要另外两个区:堆和栈 在x86处理器上的Linux,代码段从0x08048000单元开...原创 2020-05-21 18:48:01 · 527 阅读 · 0 评论 -
C/C++强制/自动类型转换
C语言自动类型转换 unsigned 即为 unsigned int ,此时可以省略int 只写unsigned 隐式的类型转换是安全的,而显示的类型转换是存在风险的。 C语言强制类型转换 C语言中 涉及地址间强制类型转换特别要注意 字节对齐 的问题; unsigned int value = 1024;// 4 个 字节 cout << hex << &value << endl; bool *p = (...原创 2020-05-21 18:39:35 · 1373 阅读 · 0 评论 -
函数指针 指针函数 数组指针 指针数组
函数指针(回调函数) 重在指针,说明其是一个指针,只不过这个指针有点特殊,指向特定形式的函数。 格式 返回值类型 ( * 指针变量名) (形参1, 形参2...); int func(int x);{ /* 声明一个函数 */ cout << "-----" << endl; } int (*p_func) (int x); /* 声明一个函数指针 (这个函数的返回值为int型,参数为int型)*/ p_func = func; /* 将f...原创 2020-05-21 10:23:43 · 299 阅读 · 0 评论 -
操作系统的大小端模式
什么是大小端模式 大小端存储由 CPU架构 决定。 大端模式( big endian):低地址存在高位,高地址存在低位; 小端模式( Little Endian):低地址存在低位;高地址高位; 例如: 使用大端模式的有:Mac OS、PowerPC、IBM、Sun、TCP/IP网络数据流; 使用小端模式的有:x86、Linux; 而ARM可以是大端模式,也可以是小端模式; 如何判断CPU是大端模式还是小端模式 // liunx内核的方法 void check_CPU...原创 2020-05-21 09:52:53 · 1973 阅读 · 0 评论 -
变量(定义 初始化)、临时变量
声明与定义 变量的声明(如:extern int a;声明外部变量)告诉编译器变量名字与类型; 变量的定义:为变量分配存储空间,此时也可以给定初始值; 函数的声明:告诉编译器有这么一个函数; 函数的定义:实现函数,简言之就是带有{ }; 与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。 而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型定义了一个变量(对象),是占用内存空间的。 calss Point{ }; Point t1; // 将调用构造函数 ...原创 2020-05-21 09:45:42 · 3176 阅读 · 0 评论 -
define typedef用法
#define 只能通过简单的文本替换来实现而非传递参数; #define MUL1(x)x * x #define MUL2(x)(x) * (x) MUL1(3) // 9 MUL1(3+2) // 3+2*3+2 = 11 MUL2(3) // 9 MUL2(3+2)// (3+2)*(3+2) = 25 例题 #define SUB(x,y) x-y #define ACCESS_BEFORE...原创 2020-05-21 09:20:43 · 418 阅读 · 0 评论 -
已知树的遍历数组构建一棵二叉树
在构造二叉树的时候常见的是使用cin >> node_value; 来确定树的节点值,这就造成了我们调试程序每次都得手动输入一棵树的已知遍历,,极不方便,且效率低下,假如我们将这个遍历定义为一个数组,就可以省去这些麻烦啦,请看下面的例程。 已知上面树的前序遍历,,我们可以由前序遍历构造二叉树,,代码如下:(运行环境:DEV C++ 5.11) #include<bits...原创 2019-10-21 09:49:29 · 774 阅读 · 0 评论 -
C++编写显示全年日历
源码下载链接:https://download.youkuaiyun.com/download/mr_xuf/10423884 #include <iostream> #include <iomanip> using namespace std; class Calendar { private: int weekday; int year; public: Calen...原创 2018-05-18 21:04:38 · 6368 阅读 · 6 评论 -
浮点数在C语言中的表示以及(int&) p使用
先且看一到试题 #include<iostream> using namespace std; int main() { float a = 1; cout << boolalpha << ((int)a == (int &)a)<<endl; float b = 0; cout << boo...原创 2019-04-28 22:22:35 · 1916 阅读 · 0 评论
分享