![](https://img-blog.csdnimg.cn/20200221233935398.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
记录和分享C / C++ 学习过程中所遇所得
薛定谔的猫96
2年前端练习生
展开
-
C++进阶学习系列:数据抽象、封装和接口
所有的 C++ 程序都有以下两个基本要素:程序语句(代码):这是程序中执行动作的部分,它们被称为函数。 程序数据:数据是程序的信息,会受到程序函数的影响。数据抽象数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程(设计)技术。让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道...转载 2020-01-20 21:50:34 · 211 阅读 · 0 评论 -
C++进阶学习系列:多态
多态多态是指通过基类的指针既可以访问基类的成员,也可以访问派生类的成员。换句话说,基类指针可以按照基类的方式来做事,也可以按照派生类的方式来做事,它有多种形态,或者说有多种表现方式,我们将这种现象称为多态(Polymorphism)。C++提供多态的目的是:可以通过基类指针对所有派生类(包括直接派生和间接派生)的成员变量和成员函数进行“全方位”的访问,尤其是成员函数。如果没有多态,我们只能...转载 2020-01-20 21:49:57 · 239 阅读 · 0 评论 -
C++进阶学习一去不复返系列:重载运算符和重载函数
C++ 允许在同一作用域中的某个函数和运算符指定多个声明定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。重载决策是指调用一个重载函数或重载运算符时,编译器通过把所使用的参数类型与声明定义中的参数类型进行比较,决定选用最合适的声明定义的过程。函数重载同一作用域内,允许声明功能类似但是形...转载 2020-01-19 11:11:17 · 275 阅读 · 0 评论 -
C语言学习系列:参数、类型转换、错误处理、递归
可变参数C语言允许定义的函数带有可变数量的参数,而不是预定义数量的参数。可变参数函数定义如下:#include<stdarg.h>//定义一个函数,最后一个参数为省略号,省略号前面可以设置自定义参数。int func(int num, ... ) { //在函数定义中创建一个va_list类型变量 va_list valist; int i...转载 2020-01-18 09:55:35 · 311 阅读 · 0 评论 -
C语言学习系列:预处理器和内存管理
C 预处理器是编译过程中的一个文本替换工具,它们会指示编译器在实际编译之前完成所需的预处理。它不是编译器的组成部分,简写为CPP。所有的预处理器命令都是以井号(#)开头。所有的预处理器指令如下:预处理器指令 描述 #define 定义宏 #include 引用一个头文件 #undef 取消已定义的宏 #ifdef 如果宏已经...转载 2020-01-18 09:53:20 · 210 阅读 · 0 评论 -
C语言学习系列:文件读写&头文件
本文我们来介绍使用 C 如何创建、打开、关闭文本文件或二进制文件。打开文件使用 fopen( )函数FILE *fopen( const char * filename, const char * mode );filename是字符串,用来命名文件,访问模式mode的值可以是下列值中的一个:mode(模式) 描述 r 打开一个已有的文本文件,允许读取...转载 2020-01-18 09:49:42 · 4307 阅读 · 0 评论 -
C语言学习系列:输入&输出
输入即向程序填充数据。输出即在屏幕上、打印机或者文件中显示数据。标准文件C语言将一切设备都当做文件,这和 Linux 类似。以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕(文件指针是访问文件的方式)。标准文件 文件指针 设备 标准输入 stdin 键盘 标准输出 stdout 屏幕 标准错误 stderr 您的...转载 2020-01-18 09:48:42 · 788 阅读 · 0 评论 -
C语言学习系列:typedef
typedefC 语言提供了typedef关键字,可以使用它来为类型取一个新的名字,即自定义类型。下面的实例为单字节数字定义了一个术语BYTE(也可以使用小写字母 byte):typedef unsigned char BYTE;这样定义之后,标识符 BYTE 可作为类型unsigned char的缩写,来声明定义变量:BYTE b1, b2;也可以使用...转载 2020-01-18 09:47:42 · 271 阅读 · 0 评论 -
C语言学习系列:位域
所谓"位域"是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。位域声明struct bitFieldName{ type [member_name] : width ;}exampleVar;在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit)...转载 2020-01-18 09:43:07 · 203 阅读 · 0 评论 -
C语言学习:字符串、结构体、共用体
字符串在 C 语言中,字符串实际上是使用null字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。声明和初始化创建了一个 字符串:char charArrayName[capacity] = {charElement1,charElement2...}其实,不需要把null字符放在字符串常量的末尾。C 编译器会在初始化数组时,自...转载 2020-01-18 09:40:28 · 710 阅读 · 0 评论 -
C语言回顾深入学习:函数指针和回调函数
函数指针和回调函数函数指针是指向函数的指针变量。函数指针可以像一般函数一样,用于调用函数、传递参数。声明函数指针returnType (*functionPointerName)(param1Type,param2Type...); // 声明一个指向同样参数、返回值的函数指针类型示例如下:#include <stdio.h> int max(int x, ...转载 2020-01-18 09:39:33 · 156 阅读 · 0 评论 -
C语言回顾深入学习:数组与指针
C数组数组是用来存储一系列相同类型的变量的顺序集合。所有的数组都是由连续的内存位置组成。声明数组需要指定元素的类型和元素的数量type arrayName [ arraySize ];初始化数组//大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。double balance[5] = {1000.0, 2.0, 3.4, 7....转载 2020-01-18 09:38:20 · 259 阅读 · 0 评论 -
C语言回顾学习第二回:基础语法篇2
C 中,有特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符,下表列出了一些这样的转义序列码:转义序列 含义 \\ \ 字符 \' ' ...转载 2020-01-17 13:08:09 · 134 阅读 · 0 评论 -
C语言回顾学习第一回:基础语法篇1
C 语言是一种通用的、面向过程式的计算机程序设计语言。C 语言最初是用于系统开发工作,特别是组成操作系统的程序。由于 C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样,所以采用 C 语言作为系统开发语言。从下列的应用实例也可以看出C语言作为系统开发语言的特性:操作系统 语言编译器 汇编器 文本编辑器 打印机 网络驱动器 现代程序 数据库 语言解释器 实体...转载 2020-01-17 13:07:10 · 220 阅读 · 0 评论 -
C++学习开始就夭折系列:基本语法7
这是基本语法系列的最后一文,以后将围绕面向对象和应用领域的相关专题,话不多说,开始这最后的基础。数据结构C++ 数组允许定义可存储相同类型数据项的变量,而且数组的数据项在物理上是顺序存储的。但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项,并且可以实现物理上随机存储。定义结构使用struct 关键字声明定义结构的语法如下:struct typ...转载 2020-01-17 13:03:10 · 151 阅读 · 0 评论 -
C++学习开始就夭折系列:基本语法6
日期 & 时间有四个与时间相关的类型:clock_t、time_t、size_t和tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。结构类型tm把日期和时间以 C 结构的形式保存,tm 结构的定义如下:struct tm { int tm_sec; // 秒,正常范围从 0 到 59,但允许至 61 int tm_...转载 2020-01-17 13:02:14 · 221 阅读 · 0 评论 -
C++学习开始就夭折系列:基本语法5
上一文我们介绍到了 C++ 数组,本文从 C++ 字符串开始,抓住时间的尾巴,继续学习,不能这么早就夭折字符串C++ 提供了以下两种类型的字符串表示形式:C 风格字符串 C++ 引入的 string 类类型C 风格字符串C风格的字符串起源于 C语言,字符串实际上是使用null字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字...转载 2020-01-17 13:01:25 · 129 阅读 · 0 评论 -
C++学习开始就夭折系列:基本语法4
依然是 学习C++基础,本文让我们从函数开始。函数函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。函数的声明函数声明告诉编译器函数的名称、返回类型和参数。在函数声明中,参数的名称并不重要,只有参数的类型是必需的return_type function_name( parameter lis...转载 2020-01-17 13:00:38 · 131 阅读 · 0 评论 -
C++学习开始就夭折系列:基本语法3
由于篇幅有限,本文是接着上一篇博文 = >C++学习开始就夭折系列:基本语法2杂项运算符C运算符 描述 sizeof 返回变量所占字节的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。 Condition ? X : Y ? : 表达式的值取决于 Condition的计算结果。如果 Condition 为真,则计算 X 的值,且 X 的...转载 2020-01-17 12:58:35 · 157 阅读 · 0 评论 -
C++学习开始就夭折系列:基本语法1
C++ 程序是对象的集合,他们之间通过方法调用进行交互。对象 -对象具有状态(属性)和行为(方法)。例如:一名学生的状态—姓名,年龄,性别,行为—吃饭、睡觉、运动。对象是类的实例。 类 -类可以定义为描述对象行为/状态的模板/蓝图,是对象的抽象。 方法 -从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。 即时变量 -...转载 2020-01-17 09:32:30 · 176 阅读 · 0 评论 -
C++学习开始就夭折系列:基本语法2
上一篇文章介绍到了变量的作用域<= 传送门,接着之前的继续。变量作用域局部变量只能被函数内部或者代码块内部的语句使用。全局变量全局变量的值在程序的整个生命周期内都是有效的,可以被在程序的任意位置被访问。注意:在程序中,函数内与全局变量同名的局部变量的值会覆盖全局变量的值。定义全局变量时,系统会自动初始化为下列值,而定义局部变量系统不会自动初始化:据类型 ...转载 2020-01-17 09:32:09 · 232 阅读 · 0 评论 -
C++学习开始就夭折系列:简介概述
C++简介C++ 是一种静态类型(使用静态类型的编程语言是在编译时执行类型检查)的、编译式的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。它被认为是一种中级语言。C 的一个超集,任何合法的 C 程序都是合法的 C++ 程序。C++ 是完全支持面向对象,具有面向对象的四大特性:封装 抽象 继承 多态标准的 C++ 由三个重要部分组成:核心语言,提...转载 2020-01-17 09:29:00 · 104 阅读 · 0 评论 -
C++进阶学习一去不复返系列:类和对象(二)
篇幅过长会影响心情,紧接前一节,C++进阶学习一去不复返系列:类和对象(一)<= 传送门 。类构造函数 & 析构函数构造函数类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。默认的构造函数没有任何参数,但如果需要,构造函...转载 2020-01-16 10:13:51 · 156 阅读 · 0 评论 -
C++进阶学习一去不复返系列:类和对象(一)
C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,类的成员包含数据表示法和用于处理数据的方法(函数)。类和对象类定义类定义是以关键字class开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表:class ClassName{ public: memberT...转载 2020-01-16 10:09:19 · 183 阅读 · 0 评论