- 博客(84)
- 收藏
- 关注
原创 12.2 IO(2)
这篇继续说一下IO中常见的函数以及标准IO的机理。内容在书13.4,13.5,13.6章。1 文件IO函数上一篇介绍的函数都类似于文件IO函数。主要区别在于文件IO需要用FILE*指定待处理的文件。而接下来介绍的函数则使用 指向FILE的指针(如stdout)指定一个文件。1.1 fprintf()与fscanf()这两个函数的工作方式与printf()和scanf()类似,区别在于这...
2020-03-12 18:49:15
265
原创 12.1 IO(1)
试用一下Markdown编辑器。这篇简单说一下C语言中的IO。内容在书13.1,13.2章。1.什么是文件文件就是存储在磁盘上已经命名的存储区域,比如我们每次编写的“.c”文件,引入的“stdio.h”头文件,或者我们电脑中的视频音乐,这些都是一个个的文件.在我们看来,文件就是这样了。但是在操作系统层面,文件不仅仅是这么简单,有些软件可以查看电脑中的文件存储的位置,比如“UDefrag磁...
2020-03-11 15:20:46
295
原创 11.3 ANSI C类型限定符
这篇说一下2个关键字:const, volatile.内容在书12.5章.1. const1.1 简介以const声明的对象,值不能通过赋值或递增递减来修改,比如下面的代码就是不合法的.//=====1const int ci = 100;ci = 10;//=====2const char cc;cc = 'c';但是这样是合理的const int i...
2020-02-29 11:04:21
299
原创 11.2 分配内存
这篇主要说一说C语言中几个分配内存的函数:malloc(),alloc()和free()内容在书12.4章.1. malloc()2.alloc()3.free()
2020-02-28 20:31:47
258
原创 11.1 存储类别
作用域外部链接: 非static,非局部变量,所有文件都可见内部链接: static,非局部变量,只在本文件可见空链接: 局部变量,只在作用域可见寄存器变量:存储在CPU寄存器中,速度最快,可以用register修饰,需注意,这只是请求放入寄存器,并不是一定会被放入寄存器.CPU寄存器空间可能不能容纳过大的数据.extern:其他文件定义的变量,想在这个文件中使用就...
2020-02-28 11:08:55
241
原创 10.1 字符串(1)
接下来简单地说一说字符串.内容在书11.1, 11.2章.1. 什么是字符串字符串是一个char类型的数组,还需要一个标志,即最后一个元素应该是"\0"这个空字符.C语言用"\0"表示字符串的结束,"空字符不是0,是非打印字符,ASCII码值(或者说等价于)0"(72页),比如说这个字符串有64个字符,那么容纳它的数组容量必须是64+1=65.int main(void) {...
2020-02-25 13:51:50
215
原创 9.2 数组与指针
这篇说一下数组与指针内容在书10.3, 10.4, 10.5章.1. 在数组中做指针运算首先注意,"数组名是数组首元素的地址"(288页).也就是说下面的语句是合法的int numbers[10]; //numbers是一个数组numbers == &numbers[0]; //为真然后看看下面的例子# define SIZE 4int main(void...
2020-02-24 21:58:24
218
原创 9.1 数组
这篇说一下C语言的数组内容在书10.1章.1. 什么是数组数组由类型相同的一系列元素组成.需要使用数组时,通过声明数组告诉编译器这个数组中含有多少元素,以及这些元素是什么类型的.2. 声明,初始化一个数组2.1 声明前面在介绍字符串的时候其实已经提到,C语言中的字符串实质上是一个char类型的数组.char str[32];起到关键作用的是变量名"str"后面的一...
2020-02-24 13:17:36
545
原创 8.2 函数(2)
这篇来说说函数的其他内容,如原型,递归等.1.函数原型这节内容在书9.2章.1.1 简介与使用函数原型相当于简单介绍了这个函数的名称,返回值类型和参数类型.比如下面这两个函数double cube_volume(double l, double w, double h) { //1 double v = l * w *h; return v;}int p...
2020-02-22 21:04:54
249
原创 8.1 函数(1)
接下来就是一个重点知识:函数这篇内容是简单介绍一下函数内容在书9.1章.1.什么是函数函数是"独立完成特定任务的独立程序代码单元"(243页).之前的代码中,最常见的函数应该是main()函数.int main(void) { ... return 0;}函数可以将常用功能集合起来,需要使用的时候调用就可以了,不需要每次都编写同样的代码.2.创建并使...
2020-02-21 21:40:39
274
原创 7.1 字符输入与输出
这篇说一说C语言中字符输入输出的内容内容在书8章.1.单字符IO我们经常引入的"stdio.h"中有这样两个处理单字符的函数"putchar()"和"getchar()".一个一个字符的处理,效率好像很低.但是"这种方法很适合计算机,而且是绝大多数文本处理程序所使用的核心方法"(217页).这个程序简单的测试了这两个函数,这个程序会原样输出用户输入的内容,直到用户输入'#',程...
2020-02-21 13:43:49
876
原创 6.3 分支之 switch-case
这篇说一下switch-case内容在书7.7章.1.简单介绍switch-case1.1 结构switch() { }1.3 简单的小程序1232.有无break?1233.与if-else的对比3.1 选座位小程序if-else版int main(void) { char seat; printf("请输入你想坐的...
2020-02-20 11:22:29
196
原创 6.2 continue与break关键字
本篇说一下continue与break两个关键字内容在书7.6章.1.continue关键字1.1 可用范围while, do-while, for循环都可以使用1.2 作用执行到continue时,跳过本次循环的剩余部分,继续执行下一次循环.多层循环嵌套时,仅对当前层有效.比如for(;;) {//A while(xxx) {//B if...
2020-02-19 12:29:07
211
原创 6.1 分支之 if-else
这篇来说一下C语言中的if-else内容在书7.1,7.2章.1.if先来看看if的结构if(表达式(1)) { 语句(2) }如果表达式(1)为真,就执行语句(2),否则就不执行语句(2),而是继续执行下面的代码(1) -为真-> (2)int main(void) { int input; printf("请输入一个数字:\n"); scanf("...
2020-02-19 10:47:29
176
原创 5.2 循环之 for循环
这篇来说一下for循环1 简单介绍for循环本节内容在书6.5章.for循环"把初始化,测试和更新组合在一处".(151页).for( 初始化 ; 循环继续的条件 ; 每次循环的变化 ){ 循环体}就我个人体验来说,我是比较喜欢使用for循环的.下面的代码是高斯那个问题的for循环版.int main(void) { int max, result; pr...
2020-02-17 20:47:08
468
原创 5.1 循环之 while循环和do-while循环
这篇来说一说C语言中的while循环.内容在书6.1, 6.2章.while的意思就是当,所以while循环的意思就是,当符合条件就执行语句.
2020-02-17 10:50:35
474
原创 4.2 类型转换
这篇来说说C语言中的类型转换.本节内容在书5.5章.C语言中允许使用不同的类型完成运算,比如整数型除以浮点型.但是原则上应该避免这种运算,"虽然很便利,但是有一定危险性."(124页).1.转换规则1.unsigned char, char, unsigned short, short都会被自动转换成int(可能会转换成unsigned int.).有的时候short与int大小相...
2020-02-15 10:52:53
966
原创 4.1 基本运算符
这篇说说C语言中的运算符.1.赋值运算符 =本节内容在书5.2章.编程语言中,"="都是赋值运算.比如看看下面的语句,想想她的标准读法:number = 200;上面的语句不是"number等于200", 而是"将值200赋值给变量number",赋值行为从右往左进行.number = number + 10;这条语句在数学中显然是不可能也是不合理的,但是在编程语言...
2020-02-14 21:01:47
194
原创 3.3 printf()与scanf()
这篇详细说一下之前见过很多次的printf()与scanf().1.printf()这节内容在书4.4章.先来看看之前使用过的printf()语句printf("你输入的单词是: %s\n你输入的单词有[%d]个字母\n你输入的单词占用了%d字节存储空间\n你输入的数字是: %d\n", input, letters, size, number); 1.1 转换说明...
2020-02-14 14:02:48
355
原创 3.2 常量,C预处理器
这篇来介绍一下C语言中的常量与预处理器.1.C预处理器本节内容在书4.3章.1.1 定义在Java中,有时候会使用到常量,比如Math类中的若干常量:Math.PIMath.E......然后还会自定义常量:public static final int TIME = 60;C语言中提供了一种机制,叫做"C预处理器".其实在前面的程序中我们已经见过了预处理器...
2020-02-12 11:50:51
265
原创 3.1 初步了解字符串
1.简单使用字符串本节内容在书4.1上一篇最后提到C语言中的字符串可以通过char数组实现,下面我们用一个简单的小程序看一下:# include <stdio.h># include <string.h>int main(void) { char input[16]; int number; printf("请输入一个单词,要求16个字母以下:\n...
2020-02-12 10:26:09
153
原创 2.3 其他数据类型
这篇说一说C语言其他的数据类型1 _Bool类型C99中添加了_Bool类型用来表示布尔值,即逻辑值true和false.因为C语言用1表示true,用0表示false.所以"_Bool类型实际上也是一种整数类型.原则上只占用1字节存储空间."(54页).2 浮点类型2.1 简单介绍"浮点数的表示类似于科学计数法"(56页),可以表示非常大或非常小的数字.C语言规定"flo...
2020-02-11 20:19:18
361
原创 2.2 数据类型之字符型
这篇来简单说说C语言中的char类型.1.简单介绍字符型这节内容在书中3.4章在C语言中,char"从技术层面看是整数型,因为char实际上储存的是整数而不是字符"(50页).一般来说char被定义为8位的存储单元,所以16位,32位,64位系统都可以使用.ASCII码的范围是0~127(2^7-1),所以8位用来存储还是比较富裕的.但是对于别的语言,比如汉语,8位的范围是远远不够...
2020-02-10 21:41:06
585
原创 2.1 数据类型之整型
这篇来简单说说C语言的数据类型中的整型.1.整数与浮点数这节内容在书中3.3章.整数就是"没有小数部分的数",但是"一个值后面加上小数点,就变成了浮点数,概念与数学中的实数差不多"(43页).举例来说, 2, 123456是整数,而2.0, 123456.789就是浮点数.浮点数在运算,存储时可能会损失一定精度,比如"7.0可能被存储为6.999999",两个很大的数进行运算...
2020-02-10 14:03:04
894
原创 1 初步了解C语言
未说明是什么书籍的情况下,"书"特指C Primer Plus(第6版).1.Hello C走进一门新的编程语言,首先自然要编写最为经典的hello world程序.# include <stdio.h>int main(void) { printf("hello world!\n); return 0;}对比一下Java的:public ...
2020-02-09 12:21:31
297
原创 开始学习C语言以及一些想法(本篇没有学习的内容)
开始学习C语言了,打算利用博客记录一下自己的学习过程.由于种种原因吧,现在要开始学习C语言.也真正到了需要工作赚钱的时候了,毕竟还有好多好多要做的事情,不能都用家里的钱,要自己努力奋斗.高考之前就说,要坐火车走遍全国,到了现在大学毕业快一年了也只是实现了一点点而已.希望可以用自己的力量达成这个不算很小的目标吧.个人也是比较喜欢乘坐火车,自己坐的,家里人坐的,马路上捡的火车票也都收集了有...
2020-02-08 21:18:16
201
2
原创 ConcurrentHashMap中的一些方法的理解
这篇(可能不止这一篇)主要记录一下自己学习ConcurrentHashMap的情况.主要分析一下put()(调用了putVal())与get()0.一些常见的东西这里说一说类中随处可见的几个东西0.1 tabAt((Node<K,V>[] tab, int i)见名知意,返回tab中索引为i的内容,volatile. static final <K...
2019-12-24 19:34:30
1110
原创 关于常量池
这里暂且把Integer作为包装类的代表来说明.我们知道每次new都是创建一个新的对象,由于==比较的是内存地址,所以下面的代码不会为true: String s1 = new String("1"); String s2 = new String("1"); System.out.println(s1 == s2); //false但是...
2019-03-28 13:57:47
248
原创 Java中的多线程--Thread类
本篇介绍Thread类中的一些方法.构造器Thread() Thread(Runnable target) Thread(Runnable target, String name) Thread(String name) Thread(ThreadGroup group, Runnable target) Thread(ThreadGroup group, Run...
2019-02-17 13:00:33
209
原创 Java中的多线程--一些概念
这一块内容主要参考<Java核心技术> 第10版 .进程与线程我们用电脑时打开任务管理器,切换到进程选项卡,里面看到的各种xxx.exe,每一个都是一个进程,而多个线程则构成了一个进程.在这篇博客之前的代码中,都是单线程的--一个main()线程,在抛出异常的时候能看到Exception in thread "main"...类似字样.线程状态新建状态执行new T...
2019-02-16 12:43:09
188
原创 Java的IO系统:字符流与顶级父类Reader Writer
与字节流一次处理1个字节相比,字符流每次处理2个字节,除此之外,还有一些区别:1.字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以---摘抄自Linux公社.我们可以看看字节流和字符流的结构,可以发现字节流的类比字符流多,下面两张图片拍摄自<Java核心...
2019-02-15 13:11:53
1765
原创 Java的IO系统--字节流的一些子类(高级流)
这篇来介绍一些字节流的高级流,在基础的文件流上加入了相应的功能,比如缓冲区,写基本数据类型和对象.BufferedOutputStream与BufferedInputStream(缓冲字节流)简介缓冲字节流在流中维护了一个缓冲区,与基本的文件流相比,数据首先存储在缓冲区中,缓冲区充满或调用相应的方法时,才会把数据冲刷出去,与一个一个字节的处理相比,效率提升了很多.对于缓冲流,我们可以定...
2019-02-14 14:45:33
302
原创 Java的IO系统--字节流的一些子类(低级流)
低级流与高级流1.节点流:直接连接两个设备的流类型,一般为低级流.即顶级父类的直接子类,具体来说就是extends InputStream或OutputStream的类(除FilterStream).2.处理流:对节点流再次封装与处理的流类型,一般为高级流.即FilterStream的子类,具体来说就是extends FilterInputStream或FilterOutputStream...
2019-02-13 20:30:30
551
原创 Java的IO系统--字节流的两个顶级父类
这篇来说说字节流.两个顶级父类字节流有两个顶级父类:输入流InputStream与输出流OutputStream,两者均为抽象类.InputStream这是字节输入流的顶级父类,下面来分析一下它的源码.构造器没有显式地写出构造器,证明只有一个默认构造器.方法一共有三个read():有一个无参的抽象方法read(),是留给子类去实现的. public ...
2019-02-12 21:21:19
4779
原创 Java的IO系统--简单介绍与File
Java拥有完善的IO系统,下面就介绍一下,这个部分主要参考<Java核心技术 第10版>.有时候需要读取外部文件,或者向外部写入文件,其实之前我们就接触过一点IO系统:System中的静态变量out,就是IO流系统中的一员:PrintStream类型的.IO系统有两个大的分支:字节流与字符流,每个分支都有一个顶级输入父类与顶级输出父类,每个父类都派生出若干子类,子类再派生出子...
2019-02-12 14:51:58
249
原创 Java中的异常处理
简介我们在编写代码的时候,有时候IDE会给出以下提示:未处理的异常:java.lang.FileNotFoundException. 点击提示后,一般有这两个选项:1.在方法签名添加exception.2.使用try/catch包围 .使用方法1处理后:public class BasicException { public static void m...
2019-02-11 18:47:43
330
原创 java中的抽象与接口
简介抽象方法中没有方法体,方法体被一个分号代替,是用来让子类重写的方法,所以不能声明为final.必须声明为public或protected,默认情况下是public. public abstract void method();//抽象类中的抽象方法. void inter();//接口中的抽象方法,默认为public.抽象类与接口生来就是要被继承与实现的,所以首先...
2019-02-10 13:02:31
859
原创 MapReduce的核心--Shuffle
这篇来说说shuffle的流程.map端首先存在一个环形缓冲区,所有map处理完毕的KV对就输出到这里.体现在源码中就是:public class MapTask.MapOutputBuffer byte[] kvbuffer; 一会再说说这个kvbuffer,先来说说流程.首先map端的输出依次存储至kvbuffer,kvbuffer分为两部分,一部分存储kv相关的...
2019-02-09 21:46:30
401
原创 Java中的流程控制--循环
while与do whilewhile:while(布尔表达式){ 循环体}do-while:do { 循环体} while (布尔表达式); while有"当"的意思:当符合这个条件,就执行下面的语句,当布尔表达式结果为false时,就结束循环,所以想要一直循环,就在布尔表达式处填上true,直到遇到break都不会中断循环: public...
2019-02-09 11:57:37
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人