C 标签

C Queue Demo

  |   0 评论   |   0 浏览

queue.h #ifndef QUEUE_H #define QUEUE_H #include <stdbool.h> typedef int Item; #define MAXQUEUE 10 typedef struct node { Item item; struct node *next; } Node; typedef struct queue { // 队列首项 Node *front; // 队列尾项 Node *rear; // 队列长度 int items; } Queue; // 初始化队列 void InitializeQueue(Queue *pq); // 队列是否满了 bool QueueIsFull(const Queue *pq); // 队列是否空了 bool QueueIsEmpty(const Queue *pq); // 队列项数 int QueueItemCount(const Queue *pq); // 入队 bool EnQueue(Item item, Queue *pq); // 出队 bool DeQueue(....

C LinkList Demo

  |   0 评论   |   0 浏览

list.h head 头类,定义接口 // 如果没有定义 LIST_H_宏 #ifndef LIST_H_ // 定义 LIST_H 宏 #define LIST_H_ // 布尔 #include <stdbool.h> // 标题长度 #define TSIZE 45 // 电影 结构体 struct film { // 电影名称 char title[TSIZE]; // 评分 int rating; }; // 将 struct film 用 Item 类型代替 typedef struct film Item; // 将 struct node 使用 Node 代替 typedef struct node{ Item item; struct node *next; } Node; // 链表结构和 Node 类相同 typedef Node *List; // 初始化链表 void InitalizeList(List *plist); // 链表是否为空 bool ListIsEmpty(const List *plist); // 是否还可以创建新的 next 节点 boo....

《C Primer Plus》手记三

  |   0 评论   |   0 浏览

C Primer Plus 手记一 C Primer Plus 手记二 13.位操作 编号 0 0 0 0 0 0 0 0 ^ ^ ^ ^ ^ ^ ^ ^ 7 6 5 4 3 2 1 0 7 为最高位,0 为最低位' 7-0 每个位置为 1 分别代表为 128 64 32 16 8 4 2 1 所以一个 bytes 最大为 128+64+32+16+8+4+2+1 = 255 最小为 0000000 = 0 一个 byte 8 位 [] [] [] [] [] [] [] [] 11111111 = 255 00000000 = 0 所以 单字节 取值范围为 0-255 高阶位存储符号 1000 0001 = -1 1111 1111 = -127 1000 0000 = -0 0000 0001 = 1 0111 1111 = +127 0000 0000 = +0 正负 0 的问题可以用二进制补码来解决 正数的反码和补码都与原码相同。 负数的反码为对该数的原码除符号位外各位取反。 负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加 1 二进制运算符 // 取反 ~(10011010) -&....

《C Primer Plus》手记二

  |   0 评论   |   0 浏览

手记一 11.文件 // 标准文件 // C 会自动打开三个文件 standard input 标准输入 standard output 标准输出 standard // error output 标准错误输出 standard input 通常为键盘 standard output // 通常为显示器 通常标准输入为程序提供输入 getchar() scanf() 标准输出 // putchar(),puts(),printf() #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // 读取文件时存储每个字符 int ch; // 文件指针 FILE *fp; // 记录文件行数 unsigned long count = 0; // 效验传入参数 if (argc == 0) { printf("Usage: %s filename\n", argv[0]); exit(EXIT_FAILURE); } // 效验是否有文件,如果没有,指针就指不上 if ((fp....

《C Primer Plus》手记一

  |   0 评论   |   0 浏览

0.槽 现在的书大都太啰嗦,把读书的人当作傻子。这本书也不例外。 或许详细的 API 手册才是我所需要的吧。。。 1.变量 1.1Int //1.16 位计算机 int 区间 为 -32678 - 32677 所以 ISO C 规定 int 的取值范围最小为 -32678 - 32677 // erns,dogs 并没有初始化; int erns; int cows = 32,goats = 14; int dogs,cats = 69; //打印 printf("%d",cats); //八进制 printf("%o",0144); // 十六进制 printf("%x",0x64); //显示前缀 printf("%#o, %#x",0144,0x64); 1.2 修饰符 // short 短 比 int 范围短 // long 长 比 int 多 // long long 非常长 至少要 64 位机器比 long 长 // unsigned 无符号 非负数情况 unsigned int 0 ~ 65535 // signed 有符号 signed int - 32638 - 32637 long int es....