C/C++
文章平均质量分 68
cong1024
知其然更要知其所以然
展开
-
C语言重点知识复习1
1.进制之间的转换 %d 十进制输出 %0x 十六进制输出 %08x 十六进制输出,输出8位,如果不够,补0编程题:将十进制的数字转换成n进制的数字#include <iostream>#include <stack>using namespace std;//使用stack,将得到的数字压栈,最后逐一出栈void MyTenToN1(int num, int n)//n表示进制原创 2017-07-15 17:09:40 · 414 阅读 · 0 评论 -
深入程序编译链接和运行
深入程序编译-链接-运行原创 2017-06-16 10:44:48 · 879 阅读 · 0 评论 -
C语言重点知识复习2
1.指针的算术运算 (1)指针之间不允许相加,但允许相减 指针相减表示两个指针之间间隔的单元格数(1.先计算出字节数 2.再除以权重) (2)指针运算需要调整 p+数字(n) 加n单元格的权重 权重为指针变量去掉一个*,求sizeof(),乘n 数字之间不需要调整,直接加或减#include <stdio.h>#include <stdlib.h>int main(){原创 2017-07-15 17:20:14 · 364 阅读 · 0 评论 -
C++总结1——指针和引用/数组的区别
1.指针和引有什么区别?(从反汇编角度回答) a.其实引用和指针本质上是一样的,他们的汇编指令都是两行。 int a = 10; int *p = &a; //lea eax,[a] 将a的地址放在eax寄存器中 //mov dword ptr [p], eax 将eax寄存原创 2017-07-15 20:37:02 · 899 阅读 · 0 评论 -
C++总结2——函数的重载
1.C++函数的重载 重载的原理: C和C++都是编译性语言,编译过程中函数要产生符号生成符号表。C中,函数的符号只与函数名有关,C++中,函数的符号由函数名和参数列表构成,所以C++支持函数的重载。 重载的条件: <1>函数名相同,参数列表不同(参数类型或参数数量不同) <2>函数必须处在同一作用域 特殊情况: 当const不和指针或引用使用时,不参与类型的识别原创 2017-07-16 11:55:09 · 311 阅读 · 0 评论 -
C++总结3——volatile、explicit、mutable关键字
1.volatile关键字 volatile是类型修饰符(一致性、原则性、可见性) <1>防止多线程对共享变量进行缓存,保证各线程实时从内存中读取变量值; <2>防止编译器对指令顺序进行调整。 防止CPU对指令顺序进行调整,用barrier()。volatile关键字保证内存可见性,不保证代码段的原子性。保证代码段的原子性要使用信号量或者互斥锁。2.explicit关键字 防止隐式生成临时原创 2017-07-16 13:54:28 · 519 阅读 · 0 评论 -
C++总结5——继承与多态
1.C++的继承 继承有3种形式:私有继承、保护继承、公有继承,缺省的继承方式是私有继承。不论哪种继承方式,派生类都是显示的继承类基的保护成员变量和函数和公有成员变量和函数,继承方式只是限定在派生类中这两种成员变量的访问方式(即访问权限)。私有的成员变量和函数也被继承到派生类中,但是不能被访问,它是隐藏的,在派生类中不可见。 派生类继承基类,除基类的构造函数和析构函数不外,其他的所有都继承原创 2017-07-16 22:49:47 · 3415 阅读 · 3 评论 -
C++总结4——内存泄露/资源泄露
内存泄露/资源泄露现象 1.malloc/new动态申请的内存,忘记写free/delete,导致内存泄露; 2.调用默认的赋值运算符重载函数,发生浅拷贝现象,导致内存泄露 3.在构造函数中new,但是程序运行过程中抛出异常,未调用析构函数。4.构造函数中调用new开辟内存后,抛出异常。对象未构造成功,不会调用析构函数,导致new的堆内存没有释放。原创 2017-07-16 15:21:37 · 3005 阅读 · 0 评论 -
C++总结6——继承与多态的笔试题
1———————————————-#include using namespace std;class Base{public: Base(int data):_ma(data) { cout"Base()"<<endl; } virtual ~Base() { cout"~Base()"<<endl; }原创 2017-07-17 02:01:45 · 3186 阅读 · 1 评论 -
C++总结7——STL基本原理和用法
1.STL的三种类型容器 顺序容器:vector 向量容器 deque 双端队列 list 链表 容器适配器:stack 栈 queue 队列 priority_queue 优先级队列 关联容器:set原创 2017-07-17 16:18:56 · 1375 阅读 · 0 评论 -
C++总结8——shared_ptr和weak_ptr智能指针
智能指针的提出:智能指针是存储指向动态分配对象指针的类,用于生存期控制。能够确保正确销毁动态分配的内存,防止内存泄露。1.智能指针的分类:不带引用计数的智能指针auto_ptr unique_ptr scoped_ptr 带引用计数的智能指针shared_ptr:强智能指针weak_ptr:若智能指针原创 2017-07-17 21:59:35 · 1075 阅读 · 0 评论 -
位运算实现简单算数运算
1.用位运算实现加法int Add(int a, int b){ if(b == 0) return a; int sum = 0; int carry = 0; sum = a^b; carry = (a&b)<<1; return Add(sum, carry);}2.写一个函数,判断数是否为0int IsZero(int nu原创 2017-08-10 21:40:03 · 543 阅读 · 0 评论