C
码农小李。x17355150737
我的薇:x17355150737
展开
-
4.9、链表(反转)&状态机与多线程
4.9.1.链表的引入 本节从数组的缺陷说起引入链表的概念,目的是让大家自然认识到链表的意义和用途。(西点师)4.9.1.1、从数组的缺陷说起(1)数组有2个缺陷,一个是数组中所有元素的类型必须一致;第二个是数组的元素个数必须事先制定并且一旦指定之后不能更改。(元素类型一致,元素个数固定。)(2)如何解决数组的2个缺陷:数组的第一个缺陷靠结构体去解决。结构体允许其中的元素的类型不相同,因此解...原创 2018-02-24 14:01:17 · 211 阅读 · 0 评论 -
4.8、一些杂散但值得讨论的问题
4.8.1.操作系统究竟是个什么玩意?4.8.1.1、像人类社会一样的计算机软件系统(有些人只埋头干活,有些人只做管理)(1)人类社会最开始时人人都干活,这时候没有专业分工,所有人都直接做产生价值的工作。当时是合适的,因为当时生产力低下,人口稀少。这就像裸机程序一样(裸机程序的特点是:代码量小,功能简单、所有代码都和直接目的有关,没有服务性代码)。(2)后来人口增加生产力提高,有一部分人脱离了直接...原创 2018-02-24 13:59:01 · 491 阅读 · 0 评论 -
4.7.存储类&作用域&生命周期&链接属性
4.7.1概念解析:1、存储类:2、作用域:3、生命周期:4、链接属性:大家知道程序从源代码到最终可执行程序,经历的过程:编译、链接。编译阶段就是把源代码搞成.o目标文件,目标文件里面有很多符号和代码段、数据段、bss段等分段。符号就是编程中的变量名、函数名等。运行时变量名、函数名能够和相应的内存对应起来,靠符号来做链接的。.o的目标文件链接生成最终可执行程序的时候,其实就是把符号和相对应的段给链...原创 2018-02-24 13:57:46 · 207 阅读 · 0 评论 -
4.6、C语言宏定义与预处理,函数和函数库
4.6.1、C语言预处理理论:(1)源码到可执行程序的过程:源码.c—>(预处理)—>预处理过的.c(又叫.i文件)源文件—>(编译)—>汇编文件.s—>(汇编)—>目标文件.o—>(链接)—>elf可执行程序预处理用预处理器,编译用编译器,汇编用汇编器,链接用链接器,这几个工具再加上其他一些额外的会用到的可用工具,合起来叫编译工具链,gcc就是...原创 2018-02-24 13:56:40 · 429 阅读 · 0 评论 -
4.5、数组&字符串&结构体&共用体&枚举
4.5.1程序中的内存从哪里来1:(1)在C中获取内存的三种情况:栈(stack)、堆(heap)、数据区(data)。(2)栈的详解:运行时自动分配&自动回收:栈是自动管理的,程序员不需要手动干预,方便简单。反复使用:栈内存在程序中其实就是那一块空间,程序反复使用这一块空间。脏内存,栈内存由于反复使用,每次使用后程序不会去清理,因此分配到时保留原来的值。临时性(函数不能返回栈变量的指针,...原创 2018-02-24 13:54:23 · 258 阅读 · 0 评论 -
4.2、C语言的位操作
4.2.1、位操作符 注意:C语言中位取反是~,逻辑取反是!; 任何非0的数被按逻辑取反再取反就会得到1:,任何非0的数被按位取反再取反就会得到它自己。#include<stdio.h>int main(void){ unsigned int a=45; unsigned int b,c; b = ~~a; //按位取反 c = !!a; /...原创 2018-02-24 13:46:15 · 493 阅读 · 0 评论 -
4.3、指针才是C的精髓
4.3.1、指针到底是什么?使用指针三步:定义指针变量、关联(绑定)指针变量、解引用(1)指针的实质就是一个变量,指针变量(int *p,是int*为一体,p为一体,p是地址值,*p是p所指向的那个变量)(2)指针的出现是为了实现间接访问,p = (int *)4//定义一个int类型的指针地址,地址为4;//实现绑定,让p指向内存地址为4的那个变量。*p = 555,在这里是表示将555放入p所...原创 2018-02-24 13:46:51 · 307 阅读 · 0 评论 -
4.4、C语言复杂表达式和指针高级应用
4.4.1 指针数组与数组指针4.4.1.1、字面意思来理解指针数组与数组指针(分清楚主语和修饰语)(1)指针数组的实质是一个数组,这个数组中存储的内容全部是指针变量。(2)数组指针的实质是一个指针,这个指针指向的是一个数组。4.4.1.2、分析指针数组与数组指针的表达式(1)int *p[5]; int (*p)[5]; int *(p[5]);(2)一般规律:int *p;(p是一个指针...原创 2018-02-24 13:49:31 · 275 阅读 · 0 评论 -
4.1、内存这个大话题
4.1.1.计算机的内存: 譬如Java语言对内存的使用就是进一步的封装,我们可以用new来创建对象(其实就是为对象分配内存),用完后Java虚拟机会自动调用垃圾回收器来释放内存,若内存不释放,这就是内存泄漏了。 冯诺依曼结构: 一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构和哈弗结构: 是一种将程序指令储存和数据储存分开的存储器结构(如ARM等一些嵌入式芯片)。4.1....原创 2018-02-24 13:45:48 · 254 阅读 · 0 评论 -
C/C++文件操作fopen/fscanf/ fprintf/ fclose简单使用方法
fopen函数原型 FILE * fopen(const char *path,cost char *mode)作用:打开一个文件,返回指向该文件的指针参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式注:mode有以下值:r:只读方式打开,文件必须存在r+:可读写,必须存在rb+:打开二进制文件,可以读写rt+:打开文本文件,...转载 2018-12-20 17:06:41 · 2112 阅读 · 0 评论