- 博客(11)
- 收藏
- 关注
原创 深入理解计算机系统 笔记(一)
1.信息属于位+上下文8bite 为 一字节用字节表示文本字符(即code,包括c、c++、java等等),采用ASCII标准表示字符。#为35 每行结尾都有换行符 \n 为10 (ASCII中)。2. c文件翻译流程在Unix系统上,从源文件到目标文件的转化 由编译器驱动程序完成:例:linux > gcc -o hello hello.c //-o o为output 之意执行过程为:预处理阶段 :hello.c -> hello.i预处理指令包括条件编译、源文件包含
2021-12-06 10:25:46
574
原创 c++ 右值引用与左值引用
C++ 左值引用和右值引用最近看到 auto &a :count 与 aotu &&a:count的用法时候,对&&a这种写法不是很清楚 于是查了下相关的资料#include <iostream>#include <vector>using namespace std;class A{public: /* 构造函数 */ A() { for (int i = 0; i < 5;.
2021-11-24 13:55:40
1772
原创 面经常问题目
进程和线程1.进程和线程的区别一个进程包含多个线程,一个线程只属于一个进程进程 资源分配最小单位 线程 调度的最小单位进程开销大于线程 进程创建和销毁时 需要系统为之销毁和创建资源 包括i/o 内存等;线程开销小 只需要保存和设置少量寄存器 不涉及存储进程需要自己独立的内存 线程间共享进程的内存,共享 代码段包括代码和常量,数据段全局变量和静态变量,堆区端进程调试可靠性高 较简单 线程开销小 速度快 调试较复杂进程间不会相互影响 线程会 一个挂掉 会全部失去。进程间通信的方式:管道 ip
2021-04-01 08:05:30
198
原创 表达式
1.左值与右值当一个对象被用作右值的时候,用的是对象的值(内容);当一个对象被用作左值的时候,用的是对象的身份(在内存中的位置)。在需要右值的地方可以用左值来代替,但不能把右值当成左值(位置)使用。当一个左值被当成右值使用时,实际使用的是它的内容(值)。用到左值的常见运算符:1.赋值运算符2.取地址符作用于左值运算对象,返回一个指向该运算的指针,指针是右值。3.内置解引用符、下标运算符、迭代器解引用运算符、string和vector的下标运算符4.内置类型和迭代器的递增递减运算符作用于左值对
2021-01-14 12:17:28
248
原创 字符串、向量和数组
1.stringstring是一种库函数。定义和初始化string对象string s1; //默认初始化,s1是空字符串string s2 = s1 //s2是s1的副本string s3 ("value") //s3是字面值“value”的副本,除了字面值最后的那个空字符外string s3 = "value"//等价于上式string s4(n,'c')//初始化n个c直接初始化和拷贝初始化string s5 ="dong"//拷贝初始化string s6("dong")//直接
2021-01-02 18:53:25
647
原创 变量和基本类型
1.含有无符号类型表达式若定义 unsigned u = -42;那么输出值会是429496726 (int 32位);将负数取正,然后取无符号数的模(无符号数的计量范围)与其正数相减。2的32次方 = 429496726 ;输出 :429496726 - 42 = 4294967254;当从无符号数中中减去一个值时,需要保证所得值不能是赋值。若所得值为负值,则结果为取模值。2.声明和定义的关系声明:使得名字被程序所知,若一个文件想在别处定名名字需包含那个名字的声明。定义:用于负责创建
2020-12-29 16:14:08
184
原创 C++输入数据类别分析
1.输入数据数量不确定指预先不知道输入的数据数量,需要不断的读取数据直到没有新输入为止。例:输入不定数字求和#include<iostream>int main(){int sum = 0;int value = 0;while(std::cin >> value){sum += sum;}std::cout << sum << std::endl;return 0;}检测cin流的状态,把其放入while语句中进行判定,若其流有效
2020-12-28 15:42:32
345
转载 typedef理解
typedef用来声明一个别名,typedef后面的语法,是一个声明。typedef int PARA;这种形式跟#define int PARA几乎一样,某些教材的宗旨是由浅入深,但实际做出来的行为却是以偏盖全。的确,这种形式在所有形式中是最简单的,但却没有对typedef进一步解释,使得不少人用#define的思维来看待typedef,把int与PARA分开来看,int是一部分,PARA是另一部分,但实际上根本就不是这么一回事。int与PARA是一个整体!就象int i:声明一样是一个整体声明,只不
2020-10-05 13:35:56
249
转载 C/C++中内存5大分区
代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。常量区:存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”abcde”, 数组的名字等)静态区(全局区、全局数据区):静态变量和全局变量的存储区域是一起的,一旦静态区的内存被分配, 静态区的内存直到程序全部结束之后才会被释放 。分为 DATA 段和 BSS 段:DATA 段(全局初始化区)存放初始化的全局变量和静态变量;BSS 段(全局未初始化区)存放未初始化的全局变量和静态变量。堆区:由程序员调用mal.
2020-09-16 18:03:03
413
原创 static变量及函数总结C++
全局(静态)存储区:分为 DATA 段和 BSS 段。DATA 段(全局初始化区)存放初始化的全局变量和静态变量;BSS 段(全局未初始化区)存放未初始化的全局变量和静态变量。程序运行结束时自动释放。其中BBS段在程序执行之前会被系统自动清0,所以未初始化的全局变量和静态变量在程序执行之前已经为0。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。在 C++ 中 static 的内部实现机制:静态数据成员要在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所以静态数据成
2020-09-16 17:12:21
420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人