![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++基础
Jokey92
邮箱:932432866@qq.com
展开
-
c语言优先级排序
c语言运算优先级原创 2020-08-02 14:47:46 · 3073 阅读 · 0 评论 -
扫盲
一、指针数组与数组指针的区别1.指针数组是指一个数组里面装着指针,也即指针数组是一个数组;定义形式:int *a[10];如图所示:2.数组指针是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已;定义形式:int (*p)[10]; 其中,由于[]的优先级高于*,所以必须添加(*p).3.区分方法:主要看后面的两个字是什么(前面是修饰作用),因此指针数组是数组,而数组指针是指针。...原创 2020-06-09 21:11:45 · 195 阅读 · 1 评论 -
gtest框架
gtest下载与安装 git clone https://github.com/google/googletest.gitcd googletestmkdir buildcmake ..makesudo make install 以上命令会将gtest编译好,并将动态链接库放在/usr/local/lib 目录下: zhouhao@ubuntu:/usr/loc...原创 2020-03-07 23:21:03 · 653 阅读 · 0 评论 -
解决Linux环境下eclipse中gtest环境的搭建
1.下载gtest(我下载的是1.7.0版本);2.解压;3.在解压后的文件夹中新建文件夹,使用终端进入新建的文件夹,然后终端输入cmake /media/B/googletest/gtest-1.7.0 (gtest解压的文件夹),会在该目录下面生成makefile文件,接着在终端输入make,你会看到生成libgtest.a文件;4.打开eclipse,新建工程;5.配...原创 2020-03-07 14:48:05 · 734 阅读 · 0 评论 -
测试小结
1.c语言--回绕C语言是一种弱类型的语言,类型之间可以进行隐式的转换;而C++是强类型的语言,需要进行强制类型转换C99规定(无符号整数将会回绕):涉及无符号操作数的计算不会溢出,因为无法由最终的无符号整数类型表示的结果将会根据这种最终类型可以表示的最大值加1执行求模操作。如:unsigned int i = -1;输出的时候,i 的值为:4294967295(最大值)i的值有...原创 2019-11-08 16:07:33 · 231 阅读 · 0 评论 -
C语言中结构体占用内存问题——字节对齐
普通数据类型比如int char float 我们很清楚知道它们占用几个内存,比如int占用4个字节,char占用一个字节等等,知道数据类型占用多少内存是很重要的,可以使我们的程序效率更高、运行速度更快、快速知道自己程序的bug…这道题是自己秋招时面试嵌入式软件开发的一道笔试题,面试时也问了,当时自己回答的有些混乱,因此今天进行记录。之前对结构体占用内存一直很混乱,到底是按照哪个变量类型计...原创 2019-08-06 21:39:41 · 647 阅读 · 0 评论 -
c/c++中的文件
目录c++中的.hpp文件cc文件c++中的.hpp文件hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用project中的cpp文件数与编译...原创 2019-05-30 18:13:43 · 310 阅读 · 0 评论 -
C/C++中 0, ‘0’, “0”, “/0”和NULL的区别
0:数值常量'0':字符常量, 在内存中的值是0x30."0":字符串常量, 实际存储的时候是一个0x30, 一个\0。"\0":字符串结束符, NULL:空指针, 在C++中值为0,在C中定义为(void *)0....原创 2019-02-26 21:04:12 · 2808 阅读 · 0 评论 -
5. STL学习笔记--基础容器之vector
一、实验内容本次实验主要讲述 c++11 vector 容器的用法,vector 是 c++11 STL 中一个非常重要的成员,通过对它的使用,我们可以更加高效率的处理数据,通过本次实验你可以实现属于自己的 vector。1.1 知识点vector 基础 vector 初始化 vector 基本操作 vector 成员函数1.2 实验环境g++ ubuntu 16.04...原创 2018-11-29 16:30:54 · 390 阅读 · 0 评论 -
4. STL学习笔记--算法
一、实验内容本次实验主要讲述 STL 常用算法和基本算法,算法在日常的开发使用中能够提高不少的开发效率。1.1 知识点lambda 表达式 常见基本算法1.2 实验环境g++ ubuntu 16.041.3 代码获取可以通过以下链接获取本课程的源码内容,本次实验内容主要包含在文件Algorithm.h。//获取代码wget http://labfile.oss....原创 2018-11-29 16:06:46 · 307 阅读 · 0 评论 -
4. STL学习笔记--函数对象(仿函数)
一、实验内容1.1 知识点函数对象概述 预定义函数对象 辅助函数对象 适配器 函数对象使用方法1.2 实验环境g++ ubuntu 16.041.3 代码获取可以通过以下链接获取本课程的源码内容,本次实验内容主要包含在文件Functional.h。//获取代码wget http://labfile.oss.aliyuncs.com/courses/1166/m...原创 2018-11-29 15:48:14 · 313 阅读 · 0 评论 -
3. STL学习笔记--迭代器
一、实验内容本节实验我们将为大家讲解迭代器,主要介绍 5 种常见迭代器:输入、输出迭代器,前向逆向迭代器,双向迭代器和随机迭代器。主要内容包括各自的构造方法和操作方法。1.1 知识点输出迭代器 输入迭代器 前向迭代器 双向迭代器 随机迭代器 迭代器辅助函数1.2 实验环境g++ ubuntu 16.041.3 代码获取可以通过以下链接获取本课程的源码内容,本次实...原创 2018-11-29 15:38:13 · 469 阅读 · 0 评论 -
2. STL学习笔记--template编程
一、实验简介1.1 实验内容本节内容主要讲述 c++11 模板的用法,以后的代码中会大量的用到模板的知识。同时简单讲解迭代器的相关知识,为后面容器和算法的内容作铺垫。1.2 实验知识点模板编程 基本语法 模板函数 类模板和成员模板 模板类中的静态成员 typename和class 迭代器 迭代器详解 迭代器种类和使用 二、模板编程基本语法模...原创 2018-11-29 15:11:16 · 233 阅读 · 0 评论 -
C语言编译过程详解
目录前言示例1.预处理(Preprocessing)2.编译(Compilation)3.汇编(Assemble)4.链接(Linking)结语参考文献前言C语言程序从源代码到二进制行程序都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程。编写hello world C程序:// hello.c#include &...原创 2018-08-31 10:40:13 · 553 阅读 · 0 评论 -
C++中include iostream和include iostream.h
C++中#include <iostream>和#include <iostream.h>有什么区别?#include<iostream>是C++头文件库;#include<iostream.h>是C头文件库。C++有一部分继承与C,所以C++中保留了iostream.h这种写法。使用#include<iostream&...原创 2018-03-27 09:45:24 · 8819 阅读 · 0 评论 -
堆和栈的区别
栈和堆栈是一个概念。队列先进先出,在队头做删除操作,在队尾做插入操作。栈先进后出,在栈顶做插入和删除操作。堆和它们不同,不存在是先进后出还是先进先出。 1.栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域,该区域具有FIFO的特性,在编译的时候可以指定需要的Stack的大小。在编程中,例如C/C++中,所有的局...转载 2018-03-27 09:13:53 · 170 阅读 · 0 评论 -
c++类和类的封装,对象线程封装
1. C++面向对象编程介绍面向对象编程(Object Oriented Programming),简称OOP。在传统的面向过程编程中,数据以及数据的相关操作函数都是分离的独立个体;对象,如周围的一切其实都是对象;就编程角度,对象包括A)一系列属性(数据);B)一系列操作(函数)。OOP提供了设计对象的功能,对象包括特性和行为,两者都囊括在一起,共同构成对象实体(即类实体);对...原创 2018-09-05 17:50:42 · 2937 阅读 · 1 评论 -
C语言和C++的区别【完整版】
C和C++的关系:就像是win98跟winXP的关系。C++是在C的基础上增加了新的理论,玩出了新的花样。所以叫C加加。C和C++的区别:C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。 C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取...原创 2018-09-12 10:48:56 · 14485 阅读 · 0 评论 -
C++中NULL和0的区别是什么?c++11中nullptr与NULL的区别?
C++中“NULL”和“0”的区别是什么? 0是一个数字,本身有着一些原生的特性诸如:起始,没有,正负的分界线,0/1中的0还可以表示否定。0可以表示数字0,也可以表示ASCII码值为0的字符。 NULL用于将指针指定为空指针,也就是说该指针不指向任何对象,不可以对该指针进行解引用,否则系统会报错。 在数值上NULL,'\0',0是一样的,都是0,但'0'就不同了,在AS...原创 2018-09-10 11:02:27 · 2195 阅读 · 0 评论 -
C++中的匿名对象的概念和使用
C++中的匿名对象是pure RValue, 因而不能作为引用传进去。 匿名对象只存在于构造该对象的那行代码,离开构造匿名对象的哪行代码后立即调用析构函数。class Some { int n; public: Some(int s){n=s;} ~Some(){ cout<< "destroy\n"; } int ret(...原创 2018-09-07 11:05:29 · 3404 阅读 · 1 评论 -
浅谈C++多态
最近复习到了C++的多态性,我想把多态性的一些知识点进行下梳理总结。本文所有代码均在windows10的VS2013平台上测试https://blog.csdn.net/qq_41632129/article/details/79479838什么是多态?多态性(polymorphism)据说最早源自希腊语,从字面上理解就是多种形态,多种形式。具体到C++这种面向对象(OOP)的语言中,...原创 2018-09-13 16:44:40 · 164 阅读 · 0 评论 -
while(i--);这句话是什么意思,什么时候跳出循环?
while(i--);这句话是什么意思,什么时候跳出循环?一、先对i的值进行判断 如果i的值0就退出二、计算:i=i-1再重复操作!i--表示先使用i,再让i=i-1。假设初始i=3。第一次while()里的是3,while(3)=>此时i=2(i--的缘故);C里非0都是true接着while(2)=>此时i=1;while(1)=>此时i=0,在下一次whi...原创 2018-11-07 17:53:23 · 26417 阅读 · 2 评论 -
1. STL学习笔记--STL介绍
一、STL介绍本次课程主要面对有一定 c++ 基础(了解基本语法,熟悉常用特性)的 ,想要学习 c++ 更深入特性 ,掌握 c++ 强大标准库的同学 。通过本次课程,你将学习到 c++ template ,异常处理 ,并回顾数据库的部分知识 ,初步掌握 STL 开发 ,避免重复制造轮子。将学习到的知识点: 模板编程 泛型编程 STL 常用组件 lambda表达式 异常处理...原创 2018-11-29 14:32:33 · 259 阅读 · 0 评论 -
c++类和对象基本概念
c++类和对象基本概念1.什么是类?什么是对象?两者的区别是什么?类是抽象的,对象是具体的的,对象是类的一个实例,对象继承类的方法和属性。举个例子:人是一个类,它是抽象,那什么是对象呢?那就是具体指的哪个人,比如小红、小明,这就是对象,人有外貌特征和行为,比如鼻子、耳朵、眼睛2.代码分析#include<iostream>#include<string&g...原创 2018-09-05 14:02:50 · 761 阅读 · 0 评论