
c学习笔记
文章平均质量分 66
silent碎月
这个作者很懒,什么都没留下…
展开
-
c学习笔记 第17章 高级数据表示 20210414
链表和数组数组:优点:c直接支持提供随机访问、缺点:在编译时确定大小插入和删除元素很费时链表:优点:运行时确定大小快速插入和删除元素缺点:不能随机访问用户必须提供编程支持数组可以直接使用数组下标直接访问数组中的任意元素, 这叫做随机访问(random access), 对链表而言, 必须从链表首节点开始逐个访问, 这称之为顺序访问(sequential access).若要查找链表中的特定项, 一种算法是顺序查找(ssequential search)(可以使用并发编程,原创 2021-04-15 22:30:44 · 199 阅读 · 0 评论 -
c学习笔记 第17章 高级数据表示 20210410
队列ADTc语言中以抽象数据类型方法变成有以下三步:以抽象通用的方式描述一个类型, 包括该类型的操作设计一个函数接口表示这个新类型编写具体的代码实现接口定义队列抽象数据类型队列(queue)是具有特殊属性的链表只能将新项添加到链表的末尾只能从链表的开头移除项。队列是一种“先进先出”(first in, first out, 缩写为FIFO)的数据形式| 类型名 | 队列 || 类型属性 | 可以储存一系列项 || 类型操作 | 初始化队列为空 |确定队列为空确定队原创 2021-04-14 17:28:44 · 164 阅读 · 0 评论 -
c学习笔记 第17章 高级数据表示 20210408
建立接口简单链表有两个部分第一部分是如何表示数据, 第二部分是描述实现ADT操作的函数。接口设计应尽量与ADT描述一致#define TSIZE 45struct film{ char title[TSIZE]; int rating;};typedef struct film Item;定义完毕Item后, 需确定如何储存这种类型的项typedef struct node{ Item item; struct node * next;} Node;typedef Node原创 2021-04-09 19:44:42 · 141 阅读 · 0 评论 -
c 学习笔记 c预处理器和c库 清明节篇
c预处理器在程序执行之前查看程序, 根据预处理指令, 将符号缩写替换为表示的内容, 预处理器可以包含程序需所需的其他文件, 选择让编译器查看哪些代码。基本上预处理器工作只是把一些文本转换为其他文本。翻译程序的第一步预处理之前编译器会对程序作出一些翻译处理:编译器将源文件中出现的字符映射, 该过程处理多字节字符和三字符序列;随后编译器定位每个反斜杠后面跟着换行符的实例, 并删除他们, 将数个物理行(physical line)转换成一个逻辑行(logical line);随后编译器把文本划分为预处理记原创 2021-04-08 20:44:37 · 150 阅读 · 0 评论 -
c学习笔记 20210406 c预处理库和c库
_Noreturn函数(c11)c99时, inline是唯一的函数说明符, c11新增第二个函数说明符_Noreturn, 表明调用完成后函数不返回主调函数, exit()函数是_Noreturn函数的一个示例, 该函数不会把控制返回主调函数, 告诉用户以免滥用该函数, 通知编译器可优化一些代码C库访问C库其取决于实现, 需了解当前系统的 一般情况自动访问一些系统只需编译程序, 就可使用常见的库函数文件包含可以通过#include 指令包含定义宏参数的文件, 通常类似的宏都放在合适名称的头原创 2021-04-07 21:22:58 · 182 阅读 · 0 评论 -
c学习笔记 第17章:高级数据表示 20210331
c将指针和int类型都储存为整数, 但两种类型可进行有效操作不同。数据表示#include <stdio.h>#include <limits.h>#include <stdbool.h>#include <string.h>#define TSIZE 45#define FMAX 5struct film { char title[TSIZE]; int rating;};int main(void){ struct film原创 2021-04-01 18:38:57 · 144 阅读 · 0 评论 -
C学习笔记 位操作 20210330
用法: 关闭位(清空位)假设mask只有1号位为1flags = flags & ~mask;mask中为1的位都被设置清空简化形式:flags &= ~mask;用法: 切换位使用按位异或运算符。如果mask 为1, 1^ mask 为0, 0^mask为1.(00001111) ^ (10110110)// 结果为(10111001)用法: 检查位的值if ((flags & mask) == mask) puts("Wow");如果mas原创 2021-03-30 23:20:10 · 313 阅读 · 1 评论 -
c学习笔记 位操作 20210329
inline内联函数(c++, c):inline只适合涵数体内代码简单的函数数使用,不能包含复杂的结构控制语句例如while、switch,并且内联函数本身不能是直接递归函数(自己内部还调用自己的函数)inline关键字作用就是直接把函数语句复制到调用函数的地方。inline可以避免函数被频繁调用,不断地有函数入栈,造成栈空间或栈内存的大量消耗二进制数、位、 字节二进制整数c用字节(byte)表示储存系统字符集的大小, 一字节8位, 即八位组(octet), 编号为七的称为高阶位(hig原创 2021-03-29 21:04:40 · 151 阅读 · 0 评论 -
c学习笔记 结构和其他数据形式 210210326
枚举类型(enumerated type)可以用enum可以创建一个枚举类型(enum常量是int类型, 只要能使用int型的地方就可以使用枚举类型)其语法结构与结构的语法相同enum spectrum {red, orange, yellow, green, blue, violet};enum spectrum color;color 的值可能为red、orange、yellow等, 这些符号称之为枚举符(enumerator)int c;color = blue; if (color原创 2021-03-26 19:40:02 · 202 阅读 · 0 评论 -
c学习笔记 结构和其他数据形式 20210325
结构, 指针和malloc()使用malloc()分配内存, 在结构中使用指针处理字符串就比较合理struct namect{ char * fname; char * lname; int letters;};void getinfo (struct namect * pst){ char temp[SLEN]; printf("Please enter your first name.\n"); s_gets(temp, SLEN); pst -> fname = (ch原创 2021-03-25 20:58:20 · 181 阅读 · 0 评论 -
c学习笔记 结构和其他数据形式 20210318
建立结构声明struct book{ char title[MAXTITL]; char author[MAXAUTL]; float value;};关键字struct表明跟在其后的是一个结构, 后面是一个可选的标记,随后程序可使用该标记引用该结构struct book library;定义结构变量...原创 2021-03-23 20:04:52 · 101 阅读 · 0 评论 -
c学习笔记 文件输入/输出 20210315
标准I/O的机理第一步:调用fopen()打开文件, fopen()在打开文件的同时创建了一个缓冲区(读写模式下两个)以及一个包含文件和缓冲区的结构, 同时返回一个指向该结构的指针,若把指针赋给一个指针变量fp, 文本模式下打开, 获得一个文本流; 二进制模式则为二进制流。fopen()创建的结构通常包含一个指定流中当前位置的文件位置指示器, 错误和文件结尾的指示器, 一个指向缓冲区的指针, 一个文件标识符和一个计数器(统计实际拷贝进缓冲区的字节数)。第二步:文件输出, 调用一个定义在stdio.h中原创 2021-03-15 17:54:43 · 176 阅读 · 0 评论 -
c学习笔记 文件输入/ 输出 20210314
与文件进行通信文本模式和二进制模式c提供两种访问文件的途径:二进制模式和文本模式。二进制模式下可访问文件的每个字节。MS-DOS模式下, 用\r\n表示新的一行, Ctrl+z表示文件的结束。I / O级别底层I/O(low-level I/O)和标准高级I/O(standard high-level I/O).c标准只支持标准I/O包, 但是c标准建立了可移植的I/O模型。标准文件c程序自动会打开三个文件:标准输入(standard input), 标准输出(standard output原创 2021-03-14 20:31:16 · 267 阅读 · 0 评论 -
c笔记 存储类别, 链接和内存管理 2021030309
ANSI C类型限定符volatile类型限定符volatile类型限定符限制变量不放进寄存器,该过程称为高速缓存(caching)(进高速缓存的变量的值不可改变),警告编译器不要进行假定的优化。volatile限定符告知计算机,代理可改变该变量的量。volatile int locl; /* locl 是一个善变的量*/volatile int * ploc /*ploc是一个指向易变位置的指针*/const和volatile 可同时使用, 使变量设置为程序不可改变, 但通过代理可以改变。原创 2021-03-09 16:00:18 · 144 阅读 · 0 评论 -
c笔记 存储类别, 链接与内存管理 20210306
存储类别c语言储存的每个值都占用一定内存(即对象(object)), 对象可储存复数个值, 储存适当值时一定具有相应的大小。访问对象通过声明变量实现。int entity = 3;int *pt = &entity;int ranks[10];创建标识符(identifier)用来指定(designate)特定对象的内容。pt是标识符,其指定了一个储存地址的对象;pt并非标识符,然而确实指定了一个对象, 与entity指定的对象相同。指定对象的表达式称为左值,entity与pt都是原创 2021-03-06 20:08:34 · 225 阅读 · 0 评论 -
c语言学习笔记 20210301
ctype.h字符函数和字符串#include <stdio.h>#include <ctype.h>#define LIMIT 81void ToUpper(char*);int PunctCount(const char*);int main(void){ char line[LIMIT]; char* find; puts("Please enter a line:"); fgets(line, LIMIT, stdin); find = strch原创 2021-03-01 23:29:26 · 133 阅读 · 0 评论 -
c学习笔记 20210228
@[TOC] 20210228字符串排序#include <stdio.h>#include <string.h>#define SIZE 81#define LIM 20#define HALT ""void stsrt(char* strings[], int num);int main(void){ char input[LIM][SIZE]; char* ptstr[LIM]; //指针数组 int ct = 0; int k; printf原创 2021-03-01 17:04:56 · 104 阅读 · 0 评论 -
c 20210224
C学习笔记0224sprint函数strchr函数strpbrk函数strrchr函数strstr函数strlen函数sprint函数声明在stdio.h中,可将多个字符串组合,赋予一个字符串变量char first[20];char last[20];double prise;sprintf(format,"%s, %-19s: $%6.2f\n", last, first, prize);strchr函数查找字符串中是否有指定字符,若有则返回首次出现的地址,若无则返回空指针char原创 2021-02-24 18:25:52 · 180 阅读 · 0 评论