![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
唯恋殊雨
这个作者很懒,什么都没留下…
展开
-
C/C++学习笔记——C提高:动态库的封装和使用
库的基本概念库是已经写好的、成熟的、可复用的代码。每个程序都需要依赖很多底层库,不可能每个人的代码从零开始编写代码,因此库的存在具有非常重要的意义。在我们的开发的应用中经常有一些公共代码是需要反复使用的,就把这些代码编译为库文件。库可以简单看成一组目标文件的集合,将这些目标文件经过压缩打包之后形成的一个文件。像在Windows这样的平台上,最常用的c语言库是由集成按开发环境所附带的运行库,这...转载 2020-03-08 11:48:49 · 1642 阅读 · 0 评论 -
C/C++学习笔记——C提高:预处理
预处理的基本概念C语言对源程序处理的四个步骤:预处理、编译、汇编、链接。预处理是在程序源代码被编译之前,由预处理器(Preprocessor)对程序源代码进行的处理。这个过程并不对程序的源代码语法进行解析,但它会把源代码分割或处理成为特定的符号为下一步的编译做准备工作。文件包含指令(#include)文件包含处理“文件包含处理”是指一个源文件可以将另外一个文件的全部内容包含进来。C语言提...原创 2020-03-08 11:34:31 · 951 阅读 · 0 评论 -
C/C++学习笔记——C提高: 函数指针和递归函数
函数指针函数类型通过什么来区分两个不同的函数?一个函数在编译时被分配一个入口地址,这个地址就称为函数的指针,函数名代表函数的入口地址。函数三要素: 名称、参数、返回值。C语言中的函数有自己特定的类型。c语言中通过typedef为函数类型重命名:typedef int f(int, int); // f 为函数类型typedef void p(int); // p 为函数类型这...原创 2020-03-08 11:26:50 · 1617 阅读 · 0 评论 -
C/C++学习笔记——C提高:链表
链表基本概念什么是链表链表是一种常用的数据结构,它通过指针将一些列数据结点,连接成一个数据链。相对于数组,链表具有更好的动态性(非顺序存储)。数据域用来存储数据,指针域用于建立与下一个结点的联系。建立链表时无需预先知道数据总量的,可以随机的分配空间,可以高效的在链表中的任意位置实时插入或删除数据。链表的开销,主要是访问顺序性和组织链的空间损失。数组和链表的区别:数组:一次性分配...原创 2020-03-08 11:20:49 · 880 阅读 · 0 评论 -
C/C++学习笔记——C提高: 文件操作
文件在今天的计算机系统中作用是很重要的。文件用来存放程序、文档、数据、表格、图片和其他很多种类的信息。作为一名程序员,您必须编程来创建、写入和读取文件。编写程序从文件读取信息或者将结果写入文件是一种经常性的需求。C提供了强大的和文件进行通信的方法。使用这种方法我们可以在程序中打开文件,然后使用专门的I/O函数读取文件或者写入文件。文件相关概念文件的概念一个文件通常就是磁盘上一段命名的存储区。...原创 2020-03-08 11:13:00 · 915 阅读 · 0 评论 -
C/C++学习笔记——C提高: 结构体
结构体基础知识结构体类型的定义struct Person{ char name[64]; int age;};typedef struct _PERSON{ char name[64]; int age;}Person;注意:定义结构体类型时不要直接给成员赋值,结构体只是一个类型,编译器还没有为其分配空间,只有根据其类型定义变量时,才分配空间,有空间后才能赋值。结构体变量...原创 2020-03-08 10:54:40 · 702 阅读 · 0 评论 -
C/C++学习笔记——C提高:多维数组
一维数组元素类型角度:数组是相同类型的变量的有序集合内存角度:连续的一大片内存空间在讨论多维数组之前,我们还需要学习很多关于一维数组的知识。首先让我们学习一个概念。数组名考虑下面这些声明:int a;int b[10];我们把a称作标量,因为它是个单一的值,这个变量是的类型是一个整数。我们把b称作数组,因为它是一些值的集合。下标和数名一起使用,用于标识该集合中某个特定的值。...原创 2020-03-08 10:48:28 · 656 阅读 · 0 评论 -
C/C++学习笔记——C提高:位运算
可以使用C对变量中的个别位进行操作。您可能对人们想这样做的原因感到奇怪。这种能力有时确实是必须的,或者至少是有用的。C提供位的逻辑运算符和移位运算符。在以下例子中,我们将使用二进制计数法写出值,以便您可以了解对位发生的操作。在一个实际程序中,您可以使用一般的形式的整数变量或常量。例如不适用00011001的形式,而写为25或者031或者0x19.在我们的例子中,我们将使用8位数字,从左到右,每位的...原创 2020-03-08 10:42:52 · 647 阅读 · 0 评论 -
C/C++学习笔记——C提高:指针的指针(二级指针)
二级指针基本概念这里让我们花点时间来看一个例子,揭开这个即将开始的序幕。考虑下面这些声明:int a = 12;int *b = &a;它们如下图进行内存分配:假定我们又有了第3个变量,名叫c,并用下面这条语句对它进行初始化:c = &b;它在内存中的大概模样大致如下:问题是:c的类型是什么?显然它是一个指针,但它所指向的是什么?变量b是一个“指向整型的指针...原创 2020-03-07 21:22:16 · 1587 阅读 · 1 评论 -
C/C++学习笔记——C提高:指针强化
指针是一种数据类型指针变量指针是一种数据类型,占用内存空间,用来保存内存地址。void test01(){ int* p1 = 0x1234; int*** p2 = 0x1111; printf("p1 size:%d\n",sizeof(p1)); printf("p2 size:%d\n",sizeof(p2)); //指针是变量,指针本身也占内存空间,指针也可以被...原创 2020-03-07 21:18:27 · 898 阅读 · 0 评论 -
C/C++学习笔记——C提高:内存分区
数据类型数据类型概念什么是数据类型?为什么需要数据类型?数据类型是为了更好进行内存的管理,让编译器能确定分配多少内存。我们现实生活中,狗是狗,鸟是鸟等等,每一种事物都有自己的类型,那么程序中使用数据类型也是来源于生活。当我们给狗分配内存的时候,也就相当于给狗建造狗窝,给鸟分配内存的时候,也就是给鸟建造一个鸟窝,我们可以给他们各自建造一个别墅,但是会造成内存的浪费,不能很好的利用内存空间。...原创 2020-03-07 21:03:49 · 728 阅读 · 0 评论 -
C/C++学习笔记——C提高:C语言概述
欢迎大家来到c语言的世界,c语言是一种强大的专业化的编程语言。C语言的起源贝尔实验室的Dennis Ritchie在1972年开发了C,当时他正与ken Thompson一起设计UNIX操作系统,然而,C并不是完全由Ritchie构想出来的。它来自Thompson的B语言。使用C语言的理由在过去的几十年中,c语言已成为最流行和最重要的编程语言之一。它之所以得到发展,是因为人们尝试使用它后都...原创 2020-03-07 20:43:59 · 714 阅读 · 0 评论 -
C/C++学习笔记——C基础:文件操作
概述磁盘文件和设备文件磁盘文件指一组相关数据的有序集合,通常存储在外部介质(如磁盘)上,使用时才调入内存。设备文件在操作系统中把每一个与主机相连的输入、输出设备看作是一个文件,把它们的输入、输出等同于对磁盘文件的读和写。磁盘文件的分类计算机的存储在物理上是二进制的,所以物理上所有的磁盘文件本质上都是一样的:以字节为单位进行顺序存储。从用户或者操作系统使用的角度(逻辑上...原创 2020-03-07 20:27:54 · 833 阅读 · 0 评论 -
C/C++学习笔记——C基础:复合类型(自定义类型)
结构体概述数组:描述一组具有相同类型数据的有序集合,用于处理大量相同类型的数据运算。有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性。显然单独定义以上变量比较繁琐,数据不便于管理。C语言中给出了另一种构造数据类型——结构体。结构体变量的定义和初始化定义结构体变量的方式:先声明结构体类型再定义变量名在声明类型的同时定义变量直接定...原创 2020-03-07 20:15:44 · 682 阅读 · 0 评论 -
C/C++学习笔记——C基础:内存管理
作用域C语言变量的作用域分为:代码块作用域(代码块是{}之间的一段代码)函数作用域文件作用域局部变量局部变量也叫auto自动变量(auto可写可不写),一般情况下代码块{}内部定义的变量都是自动变量,它有如下特点:在一个函数内定义,只在函数范围内有效在复合语句中定义,只在复合语句中有效随着函数调用的结束或复合语句的结束局部变量的声明声明周期也结束如果没有赋初值,内容为随机...原创 2020-03-07 20:06:16 · 861 阅读 · 0 评论 -
C/C++学习笔记——C基础:指针
概述内存内存含义:存储器:计算机的组成中,用来存储程序和数据,辅助CPU进行运算处理的重要部分。内存:内部存贮器,暂存程序/数据——掉电丢失 SRAM、DRAM、DDR、DDR2、DDR3。外存:外部存储器,长时间保存程序/数据—掉电不丢ROM、ERRROM、FLASH(NAND、NOR)、硬盘、光盘。内存是沟通CPU与硬盘的桥梁:暂存放CPU中的运算数据暂存与硬盘等外部存储...原创 2020-03-06 20:49:32 · 2247 阅读 · 0 评论 -
C/C++学习笔记——C基础:函数
概述函数分类C 程序是由函数组成的,我们写的代码都是由主函数 main()开始执行的。函数是 C 程序的基本模块,是用于完成特定任务的程序代码单元。从函数定义的角度看,函数可分为系统函数和用户定义函数两种:系统函数,即库函数:这是由编译系统提供的,用户不必自己定义这些函数,可以直接使用它们,如我们常用的打印函数printf()。用户定义函数:用以解决用户的专门需要。函数的作用函...原创 2020-03-06 20:35:08 · 743 阅读 · 0 评论 -
C/C++学习笔记——C基础:数组和字符串
概述在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。数组属于构造数据类型:一个数组可以分解为多个数组元素:这些数组元素可以是基本数据类型或构造类型。int a[10]; struct Stu boy[10];按数组...原创 2020-03-05 20:53:15 · 2068 阅读 · 0 评论 -
C/C++学习笔记——C基础:程序流程结构
概述C语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。顺序结构:程序按顺序执行,不发生跳转。选择结构:依据是否满足条件,有选择的执行相应功能。循环结构:依据条件是否满足,循环多次执行某段代码。选择结构if语句#include <stdio.h>int main(){ int a = 1; int b = 2; if (a > b)...原创 2020-03-04 21:40:14 · 797 阅读 · 0 评论 -
C/C++学习笔记——C基础:运算符与表达式
常用运算符分类运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋给变量比较运算符用于表达式的比较,并返回一个真值或假值逻辑运算符用于根据表达式的值返回真值或假值位运算符用于处理数据的位运算sizeof运算符用于求字节数长度算术运算符运算符术语示例结果+正号+33-负号-...原创 2020-03-04 21:20:47 · 753 阅读 · 0 评论 -
C/C++学习笔记——C基础:数据类型
常量与变量关键字原创 2020-03-03 21:29:21 · 2058 阅读 · 0 评论 -
C/C++学习笔记——C基础:C语言概述
什么是C语言一提到语言这个词语,自然会想到的是像英语、汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。而今天计算机遍布了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机角落。用什么的什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言,而C语言就是人和计算机交流的一种语言。语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,...原创 2020-03-01 20:53:32 · 1279 阅读 · 0 评论