![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C和指针
C和指针学习笔记
ColaForced
这个作者很懒,什么都没留下…
展开
-
C和指针:第十七章:经典抽象数据类型
第十七章:经典抽象数据类型 堆栈实现 /*接口声明 stack.h*/ #define STACK_TYPE int void push(STACK_TYPE value); void pop( void ); STACK_TYPE top(void ); STACK_TYPE top( void ); int is_empty( void ); int is_full( void ); /*静态数组实现 stack.c*/ #include "stack.h" #include <asse原创 2021-05-24 12:05:39 · 91 阅读 · 0 评论 -
C和指针:第十一章:动态内存分配
第十一章:动态内存分配 void *malloc(size_t size) void calloc(szie_t num_elements, size_t element_size) void realloc(void *ptr,size_t new_size) void free(void *ptr) 常见错误:忘记检查是否分配成功 ;操作内存超出分配内存的边界 定义如下不易发生错误的内存分配器,分别在文件alloc.h alloc.c test.c #ifndef CPOINTER_ALLOC_H原创 2021-05-23 21:10:17 · 92 阅读 · 0 评论 -
C和指针: 第九~十章:字符串和字节、结构和联合
第九章:字符串和字节 strlen()返回结果为无符号数,常见错误有if((strlen(x) - strlen(y))>0) 复制字符串:char *strcpy(char *dst, char const *src) 连接字符串:char *strcat(char *dst, char const *src) strcat and strcpy 均返回第一个参数的一份拷贝,(指针) 比较字符串:int strcmp(char const *s1, char const *s2)原创 2021-05-23 20:30:59 · 66 阅读 · 0 评论 -
C和指针: 第八章:数组
数组和指针不可替换情形:sizeof 和 & 2[array]等价于*(2+(array))等价于*(2+array),该表达式是合法的 下标操作效率永远不大于指针操作 下标 [ ] 优先级高于 * 一维数组数组名是指向数组第一个元素的指针 多维数组数组名也是指向数组第1个元素的指针,但此时的第1个元素表示次级数组。例如,int matrix[3][10],matrix指向第1行,matrix+1指向第2行,*(matrix+1)是指向第2行第1个元素的指针,*(matrix+1)+5是指向第2行.原创 2021-05-23 17:41:20 · 117 阅读 · 0 评论 -
C和指针: 第七章:函数
第七章:函数 函数调用之前若编译器没看到函数原型,则默认返回整形 #include <stdio.h> /*值的1的位数的奇偶校验*/ int even_vailidity(int value, int n_bits ) { int parity = 0; while( n_bits > 0) { parity += value & 1; value >> 1; n_bits -= 1;原创 2021-05-23 15:29:52 · 92 阅读 · 0 评论 -
C和指针: 第六章:指针
第六章:指针 1字节=8位,1字=16/32/64位 对指针解引用之前,需要检查确认其并未NULL指针 *(int * ) 100 = 25; 把内存为100的地方赋值为25 前缀++a:先自增后返回值; 后缀a++:先返回值后自增 *,++这两个操作符都是从右向左结合,且后者优先级更高 //假定如下条件 char ch = 'a'; char *cp = &ch; *(cp + 1) = 'f'; //则根据从右向左规则有 *++cp: 'f' 且cp指向‘f' *cp++: 'a' 且cp原创 2021-05-23 14:21:27 · 139 阅读 · 0 评论 -
C和指针学习笔记:第二~五章:基本概念 、数据、语句、操作符和表达式
第二章:基本概念 翻译过程:编译(预处理、解析、优化)和链接 函数局部变量存储于堆栈(动态分配内存),静态变量则存储在静态内存 三字母词,e.g., ??( 表示 [ 注释不能嵌套 第三章:数据 四种基本数据类型:整型、浮点型、指针、聚合类型 整形字面值后缀:L/l 表示long, U/u表示unsigned 整形字面值前缀:0开头表8位数,0x开头表16位数, L表宽字符常量 枚举类型:提高程序的可读性和可维护性 #include <stdio.h> enum Months{Jan=原创 2021-05-22 22:35:11 · 92 阅读 · 0 评论 -
C和指针学习笔记: 第一章:快速上手
第一章:快速上手 程序描述: //我们所要分析的这个程序从标准输入读取文本并对其进行修改,然后把它写到标准输出。程序1.1首先读取一串列标号。这些列标号成对出现,表示输入行的列范围。这串列标号以一个负值结尾,作为结束标志。剩余的输入行被程序读入并打印,然后输入行中被选中范围的字符串被提取出来并打印。注意,每行第1列的列标号为零。 //每个输入行的后面一行是该行内容的一部分. //出输入的第1行是一串列标号,串的最后以一个负数结尾. //这些列标号成对出现,说明需要打印的输入行的列的范围. //例如,0 3原创 2021-05-21 22:22:05 · 89 阅读 · 0 评论