C/C++
文章平均质量分 91
Superain丶
这个作者很懒,什么都没留下…
展开
-
1.28——指针
1.野指针可能带来哪些后果?野指针,即指向一个错误位置的指针,如果你的程序中有野指针,你的数据就危险了。存放在堆中的数据可能会被破坏,用来处理堆的数据结构也可能被破坏,甚至操作系统的数据也可能被修改,甚至有时上述三种破坏情况同时发生。此后可能发生的事情取决与这样两点:第一,内存中的数据被破坏的程度有多大;第二,内存中的被破坏的部分还要被使用多少次。在有些情况下,一些函数将立即无法正常工作;原创 2018-01-28 20:20:44 · 210 阅读 · 0 评论 -
1.30——内存管理、预处理、结构体
1. 内存分配的方式内存分配有三种方式:从静态存储区。内存在程序编译时就已经房分配好,这块内存在程序的整个执行期间都存在,如全局变量、static变量等。在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动释放。栈内存分配运算使用内置于处理器的指令集,效率很高,但分配的内存容量有限。从堆上分配 ,亦称动态内存分配。程序在运行时用mall原创 2018-01-30 20:56:21 · 154 阅读 · 0 评论 -
2.1——线性表
数据结构——线性表1. 顺序表的数学定义若将线性表记为(a1, …, ai+1, ai, ai+1, …, an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前去元素,ai+1是ai的直接后继元素。当i=1,2,…,n-1时,ai有且仅有一个直接后继,当i=1,2,3,…,n时,ai有且仅有一个直接前驱。2. 线性表的顺序存储结构线性表的顺序存原创 2018-02-01 20:29:41 · 194 阅读 · 0 评论 -
2.3——链表
数据结构——链表链表的存储结构单链表中,我们在C语言可用结构指针来描述。/*线性表的单链表存储结构*/typedef struct node{ DataType data; struct node *next;}Node;链表的初始化首先定一个链表头指针Node *list;初始化函数,创建一个头结点,并把头指针指向头结点,头结点的原创 2018-02-03 16:47:28 · 174 阅读 · 0 评论 -
2.05——栈
2.05——栈1. 栈的定义栈(stack)是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端成为栈顶(top),另一端为栈底(bottom),不喊任何数据元素的栈成为空栈。栈又成为后进先出(Last In First Out)的线性表,简称LIFO结构。首先它是一个线性表,也就是,栈元素具有线性关系,即前驱后继关系。只不过它是一种特殊的线性表而已。定义中硕士原创 2018-02-07 15:40:58 · 213 阅读 · 0 评论 -
2.07——队列
2.07——队列1. 什么是队列 队列(queue)是只允许在一端进行插入操作,而在另一端进行数据操作的线性表。 队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端成为队尾,允许删除的一端成为队头。假设队列是q=(a1, a2, a3, …, an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,再试从a1开原创 2018-02-07 15:41:20 · 198 阅读 · 0 评论 -
命名空间
命名空间将全局空间进行切割,可以嵌套使用定义一个命名空间namespace name1{ int a; int add(int a, int b) { return a + b; }}命名空间的使用:指明所属命名空间通过域解析符指明name1::a全局的命名空间 ::a使用usingusing na...原创 2018-03-06 20:21:29 · 148 阅读 · 0 评论 -
C++获取剪贴板文件路径
C++与资源管理器交互,获取剪贴板复制的文件路径#include <oleidl.h>#include <comdef.h>#include <vector>#include <string>std::vector<std::string> GetPaths(){ std::vector<std::strin...原创 2018-07-24 17:10:33 · 2041 阅读 · 1 评论 -
C++运算符重载—复数
C++运算符重载案例:复数Complex.h#pragma once#include <iostream>class Complex{ friend std::ostream& operator<<(std::ostream &out, const Complex &c);public: Complex(int real, int...原创 2019-05-31 18:16:04 · 286 阅读 · 0 评论 -
C链表模拟汉诺塔
C++链表实现汉诺塔/**链表实现汉诺塔——2019.11.26*/#include <stdio.h> #include <stdlib.h>typedef struct node{ int data; struct node *next;}Node;/**data存储盘子大小*/void output(Node *list)...原创 2019-11-27 21:16:26 · 189 阅读 · 0 评论 -
通过指针访问二维数组的三种方式
通过指针访问二维数组的三种方式/**通过指针访问二维数组的三种方式*2019-11-29*/#include <stdio.h>int main(int argc, char *argv[]){ int a[4][4]; int i, j; int *pInt; //普通指针 int (*pIntPtr)[4]; //数组...原创 2019-11-29 20:38:51 · 3164 阅读 · 0 评论 -
递归实现旋转矩阵
递归实现旋转矩阵#include <stdio.h> #define N 5 //矩阵的阶数void fun(int n, int first, int a[N][N]){ int i; if(n > N / 2 + 1) { return; } //每层递归赋值“一圈”...原创 2019-12-05 20:52:11 · 455 阅读 · 0 评论 -
台阶储水问题
Question:Analysis:Solution:#include <iostream>int main(int argc, char **argv){ int stages[] = {3, 0, 1, 2, 1, 0, 2, 3, 0, 2, 0, 2}; int sum = 0; for (int i = 0; i < 12 - ...原创 2020-01-19 08:38:33 · 216 阅读 · 0 评论 -
1.26——C语言数组、函数
一、数组1.数组越界下标可能导致哪些后果?程序仍能正常运行程序会异常终止或崩溃程序能正常运行,但无法得到正确的结果其他情况2.传递数组有哪些方式?将数组作为参数传递给函数和将指向数组中第一个元素的指针传递给函数是完全等价的。将数组作为参数传递给函数时可以采用值传递和地址传递两种方式,前者需要完整地复制初始数组,但比较安全;后者的速度要快原创 2018-01-26 20:39:02 · 431 阅读 · 0 评论 -
1.24——数据结构,运算符与表达式
第2章 数据类型1.数据类型包含哪两个方面? 数据类型包含数据的表示和对数据的加工的操作。数据的全部可能表示构成数据了类型的值的集合,数据全部合理的操作构成数据类型的操作集合。2.变量是什么,和常量比有什么区别? 其值在其作用域内可以改变的量称为变量。其值不会发生改变的量称为常量。“常量”在程序运行时,不会被修改的量。换言之,常量虽然是为了硬件、软件、编程语言服务,但是原创 2018-01-24 20:26:29 · 1703 阅读 · 0 评论