![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C
参考书目《C语言程序设计现代方法》-人民邮电出版社。
一只小汤姆
本人还处于学习阶段,且习惯于打下知识框架再慢慢填充,所有部分篇博文可能无主要内容,只有目录大纲,希望大家谅解。而且本人的文章按专栏从上到下看最好,这样知识层层递进,由浅入深。最好再配合着习题,建立知识框架。
2022.4.23更新:一年前用onenote记笔记,没管这个平台了,以后开始整理一下。
展开
-
算法
特性:有穷性确定性有零个或多个输入有一个或多个输出有效性算法的表示:用自然语言表示用流程图表示用伪代码表示用机器语言表示三种基本结构顺序选择循环原创 2020-09-02 08:40:02 · 61 阅读 · 0 评论 -
文件的概念
文件的分类ASCII文件ch = fgetc(fp);while(ch != EOF){ }EOF 为 -1二进制文件while( !feof(fp) ){ ch}feof(FILE *fp)函数end of file如果文件结束,feof返回1,否则返回0原创 2020-09-01 23:52:20 · 104 阅读 · 0 评论 -
字符数组
目录字符数组(1) 数组定义(2) 元素引用(3) 数组初始化字符数组(1) 数组定义char 数组名 [ 常量表达式 ];char a[10];(2) 元素引用下标法a[0]指针法*(a+i); //a[i]一个 i 的量是一个数组类型的字节大小。注意:不能使用*(a++) 表示 a[1] ,因为 a 是一个指针常量。(3) 数组初始化对字符数组的全部元素赋值char a[5] = {'G', 'T', 'A','V'}; //未初始化的元素默认为原创 2020-08-21 10:58:45 · 242 阅读 · 0 评论 -
编程语言的历史
目录一、C二、C++三、Python四、Java一、CC语言标准传统C语言C89C95C99C11二、C++三、Python四、Java原创 2020-05-19 09:48:24 · 106 阅读 · 0 评论 -
预处理器
目录预处理指令的类型宏定义简单的宏【# 标识符 替换列表】功能注意事项带参数的宏【# define 标识符(x~1~,x~2~····) 替换列表】功能文件包含条件编译预处理指令的类型宏定义简单的宏【# 标识符 替换列表】功能基本功能:用一个标识符去代替 a.标识符、b. 数字、c. 字符常量、d. 字符串常量、e. 运算符、f. 标点符号。具体功能:程序易读。选取符合实际意义的常量名。程序易于修改。只需改变宏定义的内容,即可改变程序中所以相关的值。避免输入错误。改编程序。可在宏定原创 2020-05-19 23:43:37 · 614 阅读 · 0 评论 -
数据的基本类型
int原创 2020-05-26 00:04:20 · 181 阅读 · 0 评论 -
数据的存储类别
目录静态存储类别static局部变量register变量动态存储类别auto变量内存中供用户使用的存储空间分:(1)程序区(2)静态存储区(3)动态存储区动态存储区存放以下数据:①函数形式参数。②函数中定义的没有用关键字static声明的变量。③函数调用时的现场保护和返回地址。静态存储类别static局部变量在函数调用结束后,局部变量不释放内存而继续保留原值static 数据类型 变量名;注意:1.2. 静态局部变量不赋初值的话,编译时自动赋初值为0(数值型变量)或‘\0’原创 2020-07-08 19:19:27 · 1354 阅读 · 0 评论 -
类型转换
目录强制类型转换赋值过程中的类型转换强制类型转换double i = 0.56;(int) i;// i = 0//向0取整赋值过程中的类型转换转换规则:将单、双精度浮点型数据赋给整型变量时,舍去小数部分,然后赋给整型变量。int i = 3.56;// i = 3将整型数据赋值给单、双精度浮点型变量时,数值不变,改变存储形式。float i = 23;//i = 23.0将double型数据赋值给float变量时,只取6~7位有效数字,存贮到float型变量的4原创 2020-08-19 14:19:00 · 120 阅读 · 0 评论 -
运算符
目录运算符运算符的优先级运算符的结合性运算符项目Value算数运算符+ - x / % ++ - -关系运算符> < == >= <= !=逻辑运算符&& ∥位运算符<< >> ~ | ^ &赋值运算符=条件运算符?:逗号运算符,指针运算符* &求字节数运算符sizeof强制类型转化运算符(类型)成员运算符. - &g原创 2020-07-09 23:18:39 · 302 阅读 · 0 评论 -
表达式
目录1. 数值表达式2. 关系表达式3. 逻辑表达式4. 条件表达式表达式的值都是逻辑量。1. 数值表达式2. 关系表达式关系表达式:用关系运算符将两个数值或数值表达式连接起来的式子。关系表达式的值是一个逻辑量 “真” or “假”。3. 逻辑表达式逻辑表达式:用逻辑运算符将关系表达式或其他逻辑量连接起来的式子。逻辑表达式的值是一个逻辑量 “真” or “假”。4. 条件表达式条件表达式:用条件运算符将表达式连接起来的式子。表达式1 ? 表达式2 : 表达式3先求解表达式1,若非0原创 2020-07-10 11:31:13 · 152 阅读 · 0 评论 -
标识符
组成部分:字母数字下划线第一位必须为字母或者下划线原创 2020-05-26 22:20:56 · 103 阅读 · 0 评论 -
字符串
坑原创 2020-05-26 00:02:53 · 184 阅读 · 0 评论 -
指针
指针之间不能进行 + 运算原创 2020-08-21 00:12:04 · 73 阅读 · 0 评论 -
C指针的应用——动态内存分配
指针作为实际参数指针作为返回值、原创 2020-05-19 23:15:06 · 128 阅读 · 0 评论 -
数据结构
目录一、结构1. 结构的声明a. 结构变量b. 结构类型2. 结构的嵌套a. 结构的结构b. 结构数组二、联合1. 声明2. 功能三、枚举声明一、结构1. 结构的声明a. 结构变量struct//指明了类型{ int number;//成员1 char name;//成员2}part1, part2;//声明具有该结构类型的变量struct{ int number; char name;}employee1, employee2;//不冲突一个结构各个成员都在同一个名字空间内,不原创 2020-05-20 17:21:01 · 88 阅读 · 0 评论 -
数组
数组名地址不是个变量,不能赋值,不能进行自增自减运算。二维数组的前一个括号可以省去。原创 2020-08-20 23:56:38 · 109 阅读 · 0 评论 -
对文件的基本操作
文本文件ch = fgetc(fp);while(ch != EOF){ }EOF 为 -1二进制文件while( !feof(fp) ){ ch}feof(FILE *fp)函数end of file如果文件结束,feof返回1,否则返回0fgets(str,n,fp)从fp所指向的文件中读取n-1个字符送入字符数组str中返回str的首地址fp...原创 2020-04-23 08:00:14 · 252 阅读 · 0 评论 -
自定义数据类型——结构体
目录1. 结构体类型2. 结构体变量定义初始化引用结构体数组结构体指针1. 结构体类型在这里插入代码片注意:(1)结构体类型中的成员可以和程序中的变量名相同,但两者不代表同一对象。2. 结构体变量定义//方法一struct Student student1, student2;//方法二struct Student{ 成员列表}student1, student2;写大型程序时,通常采用类型的声明和定义分离的方法一,使程序结构清晰,便于维护。结构体类型≠结构体变量结构原创 2020-07-03 17:53:04 · 299 阅读 · 0 评论 -
函数定义、调用、返回值
目录1. 定义函数(1)定义无参函数(2)定义有参函数(3)定义空函数2. 调用函数3. 返回值1. 定义函数(1)定义无参函数类型名 函数名(){ 函数体}类型名 函数名(void){ 函数体}(2)定义有参函数类型名 函数名(形式参数列表){ 函数体}(3)定义空函数类型名 函数名(){}2. 调用函数函数名(实参列表)3. 返回值函数的返回值是通过函数中的return语句获得的注意:一个函数中可以有一个以上的return语句。return(原创 2020-07-09 16:47:32 · 189 阅读 · 0 评论 -
函数的参数
形式参数与实际参数形式参数:定义函数时,函数名后面括号内的变量。实际参数:调用函数时,函数名后面括号内的变量。注意:形式参数属于局部变量,不调用函数时,不分配存储单元。实参向形参的数据传递是值传递,两者占内存单元都不同,所有修改形参不影响实参。数组作参数数组元素作函数实参值传递一维数组名作函数参数传递数组元素的首地址多维数组名作函数参数指针作参数...原创 2020-07-09 16:38:58 · 75 阅读 · 0 评论 -
局部变量与全局变量
目录局部变量全局变量局部变量(1)在函数开头定义(2)在函数内的复合语句内定义注意:不同函数中可以使用同名的变量,互相不干扰。形式参数也是局部变量。主函数中定义的变量也只在主函数中有效。全局变量在函数的外部定义有效范围从定义变量的位置开始到本源文件结束。注意:全局变量名的第一个字母用大写。为了函数的可移植性,通常不用全局变量。...原创 2020-07-08 18:18:52 · 203 阅读 · 0 评论 -
C标准库
目录assert.h【诊断】ctype.h【字符处理】errno.h【错误】float.h【浮点型的特性】limits.h【整型的大小】locale.h【本地化】math.h【数学计算】setjmp.h【分本地跳转】signal.h【信号处理】stddef.h【常用定义】stdio.h【输入\输出】stdlib.h【常用使用程序】string.h【字符串处理】time.h【日期与时间】assert.h【诊断】ctype.h【字符处理】errno.h【错误】float.h【浮点型的特性】limits原创 2020-05-20 17:36:49 · 117 阅读 · 0 评论 -
标准输入输出函数
目录printfscanfprintfprintf(格式控制,输出列表);格式控制(1)格式声明:% + 格式字符。将输出的数据转换为指定的格式。(2)普通字符:输出是原样输出输出列表:程序需要输出的一些数据,常量、变量、表达式。格式字符说明d,i以带符号的十进制形式输出整数o以八进制无符号输出整数(不输出第一位0)x,X以十六进制无符号输出整数(不输出第一位0x) x:a~ f X:A~Fu以无符号十进制输出整数c以字符形式输出,只输出原创 2020-07-10 14:07:10 · 438 阅读 · 0 评论 -
stdlib.h
目录数据类型宏函数数据类型size_t宏EOF(end of file)文件结束标志值为-1函数sscanf();功能返回值:如果成功,该函数返回成功匹配的个数。如果到达文件末尾或发生读错误,则返回 EOF。注意:sscanf读取字符串或数字时,默认以空格作为分割。...原创 2020-07-29 17:49:56 · 104 阅读 · 0 评论 -
选择结构
ifswitch原创 2020-05-26 20:57:22 · 95 阅读 · 0 评论 -
循环结构
while(表达式){ 语句;}do{ 语句;}while(表达式);for(循环变量赋初值;循环条件;循环变量增值){ 语句;}break:跳出循环。continue:跳出本次循环原创 2020-07-10 11:05:41 · 144 阅读 · 0 评论 -
大规模程序编写基础与要求
目录一、源文件【.c】二、头文件【.h】1. 共享宏定义2. 共享函数3. 共享变量声明嵌套包含头文件的保护一、源文件【.c】注意事项:把相关的函数与变量集合在单独的一个文件中。二、头文件【.h】1. 共享宏定义在一个头文件中定义宏和类型,在任何一个源文件中调用即可。2. 共享函数在一个头文件中声明函数,再另一个同名源文件中调用这个头文件,再定义函数即可。函数声明的头文件和函数定义的源文件必须同时存在。在其他源文件中直接引用所需函数所在的头文件即可。3. 共享变量声明嵌套原创 2020-05-20 16:21:29 · 156 阅读 · 0 评论