
计算机基础
Raven_csdn
分享,记录
展开
-
计算机编码(电脑内部代表字母或数字的方式)如:Unicode、UTF-8、UTF-16、ASCII等
作为一个计算机专业的学生,怎么和那些非计算机专业的学生区分开呢?当然是懂得计算机名词更多一些了,能通俗易懂的解释就更好了。这几天突然接触到计算机的编码,查了一些资料,下面说说自己的理解吧,欢迎批评指正,谢谢。什么是编码? 大家都知道计算机只能看懂0和1,因为0和1分别代表电路的断开和接通,或者电压的低和高,或者电阻的小和大,或者温度的底和高。人们进行编码的意...原创 2018-07-14 23:49:21 · 6258 阅读 · 0 评论 -
typedef和#define的用法与区别
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程...转载 2019-02-26 16:19:08 · 177 阅读 · 0 评论 -
C语言中内存四区,程序画图举例
栈区(临时区):由编译器自动分配释放,存放函数的参数值、局部变量的值等。堆区:一般有程序员进行分配和释放,malloc、new分配的内存在堆区(动态申请与释放),若程序员不释放,程序结束时可能有操作气功回收。全局区(静态区):全局变量和静态变量的存储是放在一块的,初始化的全局变量和未初始化的静态变量在相邻的另一块儿区域,该区域在程序结束后有操作系统释放,字符串常量和其它常量的存储在常量区,...原创 2019-02-26 23:24:30 · 1021 阅读 · 0 评论 -
C++ 虚函数、多态
所谓多态就是相同的调用,得到不同的结果。一种调用多种状态。实现多态必须满足三个条件:1、有子类继承 2、有虚函数重写 3、要有父类指针(父类引用)指向子类对象class Parent {public: Parent(int a = 0) { this->a = a; } //第一个动手脚的地方,编译器应该对这个虚函数,特殊处理 virtual void print()...原创 2019-03-19 17:24:21 · 175 阅读 · 0 评论 -
C++重写、重载、重定义、名称覆盖
代码如下:parent: --------------------------------------------------child:void print()--------------------------------------------void print() //重定义void print(int i,int j) //和父类中的print()重...原创 2019-03-19 18:24:34 · 233 阅读 · 0 评论 -
C++友元函数、友元类
class A {private : int a; int b;public: A() { a = 100; b = 200; } int geta() { return this->a; } friend void seta(A *p, int a);//声明一个友元函数,是这个类的好朋友,在类定义的地方,也就是类外可以访问类的私有变量};void s...原创 2019-03-19 18:35:08 · 194 阅读 · 0 评论 -
C++基础bool、const、引用
C++中的布尔类型:C++在C语言的基础类型系统之上增加了boolC++中的bool可取的值只有false和true理论上bool只占用一个字节,如果多个bool变量定义在一起,可能只会各占一个bit,这取决于编译器的实现true代表真值,编译器内部用1表示false代表非真值,编译器内部用0表示bool类型只有true(非0)和false(0)两个值C++编译器会在赋...原创 2019-03-11 11:54:24 · 3150 阅读 · 0 评论 -
C++面向对象,类的无参、带参构造函数、拷贝构造函数以及深拷贝和浅拷贝
构造函数为类对象分配内存空间。构造函数是C++中用于初始化对象状态的特殊函数构造函数在对象创建时自动被调用(默认调用),隐身调用构造函数和普通成员函数一样尊重重载规则拷贝构造函数是对象正确初始化的重要保证必要时,必须手工编写拷贝构造函数class Demo {public: Demo() { //无参数构造函数 a = 0; b = 0; p ...原创 2019-03-11 20:27:53 · 1961 阅读 · 0 评论 -
操作系统--进程管理
为了使参与并发执行的程序(含数据)能独立的运行,必须位置配置一个专门的数据结构,称为进程控制块(PCB),系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,由程序段、相关数据段和PCB三部分构成了进程映像(进程实体)。所谓创建进程,实质上是创建进程映像中的PCB;而撤销进程,实质上是撤销进程的PCB,值得注意的是,进程映像是静态的,进程则是动态的。PCB是进程存在的唯一标志...原创 2019-03-11 20:28:33 · 285 阅读 · 0 评论 -
C++运算符重载+,前置++后置++,友员函数实现运算符重载的应用场景
为什么要有运算符重载?一些用于自定义类型,编译器不知道如何进行类型的运算。运算符重载的本质是函数。用两种方法实现运算符重载:1、重载为成员函数,解释为:ObjectL.operator op(ObjectR),左边操作数ObjectL通过this指针传递,右操作数由参数Object传递2、重载为友员函数,解释为:operator op(ObjectL,ObjectR),左右操作数都有参数...原创 2019-03-17 23:32:41 · 2346 阅读 · 1 评论 -
设计模式之单例模式
饿汉式//恶汉模式class Single {public: static Single* getInstance();private: Single(); Single(const Single &s); Single & operator=(const Single &s); static Single *instance;};Single::S...原创 2019-03-25 23:01:06 · 201 阅读 · 0 评论 -
排序算法总结
#include#include#include#include#includeusing namespace std;/*1、堆排序*///调整大顶堆,从非叶节点节点开始从上到下,即从父节点到子节点void adjustHeap(vector &nums, int i, int length) {int temp = nums[i];//先取出当前元素ifor (...原创 2019-05-06 00:10:17 · 321 阅读 · 1 评论 -
C结构体定义、对齐,释放内存以及释放内存时,指针所指向的内存空间的情况。
结构体定义://方法一:对结构体重命名 常用typedef struct _Person{ int age; char name[30]; int grade;}Person; //方法二:struct Person{ int age; char name[30]; int grade;}p1,p2;//方法三:stru...原创 2019-02-26 15:54:42 · 2264 阅读 · 0 评论 -
计算机网络--应用层
网络应用模型:C/S模型:区分处理请求的服务器和发出请求的客户机P2P模型:每台机器既是服务器也是客户机域名解析过程(m.xyz.com)迭代查询:1)客户机向其本地域名服务器发出DNS请求报文2)本地域名服务器接收到请求后,查询本地缓存,假设没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。3)根域名服务器接收到请求后,判断该域名属于.com域,将对应的顶级域名...原创 2019-03-05 16:20:48 · 220 阅读 · 0 评论 -
二叉树后续遍历非递归方法
二叉树的后续遍历(左->右->根)void postorderTraversal(TreeNode* root) { if(root==NULL){ return ; } stack<TreeNode *> sts; map<TreeNode *,bool&...原创 2018-12-27 17:17:57 · 1552 阅读 · 0 评论 -
LeetCode:Minimum Size Subarray Sum
Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.Example: Input: s = 7, ...原创 2019-01-10 15:32:14 · 169 阅读 · 0 评论 -
EditDistance,求两个字符串最小编辑距离,动态规划
问题描述:题目描述Edit DistanceGiven two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)You have the following 3 operatio...原创 2019-01-06 21:39:58 · 498 阅读 · 1 评论 -
C语言中的字符串
C语言中没有字符串这种类型,只能通过字符数组来模拟字符串C风格的字符串是以零结尾的字符串char str1[100]={'a','b','c'};//指定了长度,那么剩下的部分补充为0//不指定长度char str2[]={'a','b','c'};char str3[]={'e','f','g','\0'};//通过字符串初始化字符数组 并且追加】、0char st...原创 2019-02-22 17:05:58 · 257 阅读 · 0 评论 -
二叉树非递归遍历
//前序遍历void preOrderN(TreeNode * root) { stack<TreeNode * > st; //st.push(root); TreeNode * p = root; while (!st.empty() || p != NULL) { while (p) { printf("%d\n", p->val); st.pu...原创 2019-02-27 15:18:29 · 151 阅读 · 0 评论 -
计算机网络--物理层
物理层的功能是透明传输比特流,传输单位是比特。IOS模型的第1层,但是物理成传输的并不是电信号、光信号等,我们把传输媒介称为第0层。物理层传输方式有三种:电路交换、报文交换、分组交换电路交换:两点之间建立一条专用的物理传输路径。分为三个阶段:建立连接、传输数据、释放连接优点:1、通信延迟小 2、有序传输 3、没有冲突 4、使用范围广 5、实时性强 6、控制简单缺点:1、建立连接时...原创 2019-03-04 22:10:52 · 711 阅读 · 0 评论 -
计算机网络--数据链路层
数据链路层的功能是:为网络层提供服务、链路管理、帧定界、帧同步与透明传输、流量控制和差错控制。可靠传输是通过确认和超时重传两种机制来保证可靠传输流量控制:1、停止等待协议:发送发每发送一帧数据都要等待接受方的应答信号才发送下一帧理解:发送方发送数据(这时候的数据还在发送缓存中,以防止发生错误后的重传),设置计时器(稍大于数据报一个来回的时间),如果成功接受到了对方的确认帧,缓存中的...原创 2019-03-05 10:40:17 · 257 阅读 · 0 评论 -
C语言中的指针,指针存在的意义
1、指针也是一种变量,占用空间内存,用来保存内存地址。所以无论指向何种数据类型的指针,编译器都给指针类型分配固定的内存空间如果说是32位那就都分配4个字节,如果是64位那就都分配8个字节。//32位计算机typedef struct _Person{ char name[30]; int age;}Person;char * a;char * b[100];int...原创 2019-02-26 10:16:16 · 6723 阅读 · 1 评论 -
计算机网络--网络层
网络层的功能是:异构网络互联,路由与转发,拥塞控制静态路由算法:由管理员手工配置路由信息,之后也能修改,只不过需要人工修改动态路由算法:通过路由器彼此交换的信息来构造路由表,分为距离向量和链路状态算法,自动更新。IPV4首部固定部分:20BIPV6首部40B,地址长度16B,它是从根本上解决IPV4地址耗尽问题。NAT:实现专用网络地址和公用网络地址之间的转换。比如学校局域网的...原创 2019-03-05 11:55:51 · 574 阅读 · 0 评论 -
C语言野指针、内存泄漏、内存溢出的概念
野指针:释放指针所指向的内存空间,和指针无关//在堆区分配100*sizeof(char)个字节的内存;char *p=(char *)malloc(100*sizeof(char));//在用完后释放内存free(p);//这时候指针p所指向的存空间被释放。//但是这个时候p指针的值没有发生变化,然后所指的内存空间已经没有了意义。//指针p成为了野指针。//解决办法很简单如...原创 2019-02-26 10:43:16 · 1210 阅读 · 2 评论 -
计算机网络--传输层
提供服务:进程之间的逻辑通信、复用和分用、差错检测、面向连接的TCP和无连接的UDP1、传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提供的是主机之间的逻辑通信。2、复用和奋勇。复用是指发送方不同的应用进程都可以使用同一个传输层洗协议传送数据;分用是指接受方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。3、传输层还要对收到的报文进行差错检...原创 2019-03-05 15:39:45 · 313 阅读 · 0 评论 -
字符串问题总结
1、最长公共子序列问题(LCS问题)给定两个字符串A和B,长度分别为m和n,要求找出它们最长的公共子序列,并返回其长度。例如:A = “HelloWorld”B = “loop”则A与B的最长公共子序列为"loo",返回长度为3。动态规划解法:定义子问题:dp[i][j]为字符串A的第一个字符到第i个字符串和字符串B的的第一个字符到第j个字符的最长公共子序列,如A为“app”,B为“...原创 2019-05-14 21:07:09 · 322 阅读 · 0 评论