随笔分类 -  C

C
摘要:1、C语言malloc,calloc,realloc 这些个alloc是动态分配内存空间的常用函数。 相比让编译器分配静态的内存空间,动态分配内存空间是非常有必要的。如在嵌入式开发时,静态分配的空间必须有足够的空间,我申请了100字节,可能实际使用就只有80个,剩下的20个就浪费了。好处是无需程序员 阅读全文
posted @ 2022-12-13 16:56 wjwdive 阅读(102) 评论(0) 推荐(0) 编辑
摘要:0 Xcode 10.1,编译器clang GNU14++ 1、整型数组的初始化 栈初始化 2、字符串的初始化 栈初始化 和整型的初始化基本一致,会调用构造函数 3、数组的默认初始化 如果不明确指出初始化列表,那么基本类型不会被初始化(全局变量和静态变量除外),所有内存都是脏数据;且自定义的类类型会 阅读全文
posted @ 2019-12-02 18:01 wjwdive 阅读(61627) 评论(0) 推荐(0) 编辑
摘要:算法 输出结果 阅读全文
posted @ 2019-08-14 23:55 wjwdive 阅读(237) 评论(0) 推荐(0) 编辑
摘要:```C #ifndef LINKSTACK_H_INCLUDED #define LINKSTACK_H_INCLUDED #include #include //链式栈的结点 typedef struct LINKNODE { struct LINKNODE *next; }LinkNode; //链式栈 typedef struct LINKSTACK { Lin... 阅读全文
posted @ 2019-08-09 07:49 wjwdive 阅读(980) 评论(0) 推荐(0) 编辑
摘要:```C /* * SeqStack.h * * Created on: 2019年8月1日 * Author: Administrator */ #ifndef SEQSTACK_H_ #define SEQSTACK_H_ //数组去模拟栈的顺序存储, 有数组的后面模拟栈顶 ,避免数据频繁移动 #define MAX_SIZE 1024 #define SEQ_S... 阅读全文
posted @ 2019-08-09 07:48 wjwdive 阅读(437) 评论(0) 推荐(0) 编辑
摘要:```C /* * Josephus.c * * Created on: 2019年7月25日 * Author: Administrator */ #include "CycleLinkList.h" #include #include #include #define M 8 #define N 3 typedef struct MYNUM { CircleLinkNode node; int 阅读全文
posted @ 2019-08-09 07:39 wjwdive 阅读(320) 评论(0) 推荐(0) 编辑
摘要:按照单链表的设计,稍加改动。和单向链表不一样的地方,头节点不指向NULL,而是指向自己head 循环链表的判满 1)判断next是不是头结点,2)判断size 阅读全文
posted @ 2019-08-09 07:37 wjwdive 阅读(3374) 评论(0) 推荐(0) 编辑
摘要:C / mian.c Created on: 2019年7月22日 Author: Administrator / include "DynamicArray.h" include include include void test01(){ //初始化动态数组 Dynamic_Array arr 阅读全文
posted @ 2019-07-23 00:42 wjwdive 阅读(4094) 评论(0) 推荐(1) 编辑
摘要:```C /* * LinkList.h * * Created on: 2019年7月20日 * Author: Administrator */ #ifndef SRC_LINKLIST_H_ #define SRC_LINKLIST_H_ #include #include //链表节点 typedef struct LINKNODE { void *data... 阅读全文
posted @ 2019-07-21 00:49 wjwdive 阅读(256) 评论(0) 推荐(0) 编辑
摘要:```C /* * LinkList.h * * Created on: 2019年7月20日 * Author: Administrator */ #ifndef SRC_LINKLIST_H_ #define SRC_LINKLIST_H_ #include #include /** * 企业链表的实现 */ //链表小结点 和普通链表相比较 没有数据... 阅读全文
posted @ 2019-07-21 00:47 wjwdive 阅读(561) 评论(2) 推荐(0) 编辑
摘要:1、双链表 1.1 双向链表的声明 在一个双链表中,每个节点都包含两个指针 指向前一个节点的指针和指向后一个节点的指针. 声明 根节点的fwd字段指向链表的第1个节点,根节点的bwd字段指向链表的最后一个节点.如果链表为空,这两个字段都为NULL.链表的第1个节点的bwd 字段和最后一个节点的 fw 阅读全文
posted @ 2019-03-01 17:22 wjwdive 阅读(397) 评论(0) 推荐(0) 编辑
摘要:动态内存分配 1.1 为什么使用动态内存分配 直接声明数组的方式的缺点: 1) 声明数组必须指定长度限制.无法处理超过声明长度的数组. 2) 如果声明更大的常量来弥补第一个缺点,会造成更多的内存浪费. 3)如果输入数组的数据超过来数组的容纳范围,程序必须以一种合理的方式作出响应.但是程序员一般不会做 阅读全文
posted @ 2019-02-28 17:34 wjwdive 阅读(250) 评论(0) 推荐(0) 编辑
摘要:1、链表 链表(linked list)即使是一些包含数据的独立数据结构的(Node)集合. 链表中的每个节点通过链或指针链接在一起. 程序通过指针访问链表中的节点. 节点通常是动态分配的,但也有由节点数组构建的链表(即使这样,程序也是通过指针来遍历链表). 1.1 单链表 单链表中,每个节点包含一 阅读全文
posted @ 2019-02-28 17:34 wjwdive 阅读(435) 评论(0) 推荐(0) 编辑
摘要:1、结构 1.1 结构声明 在声明结构时,必须列出它包含的所有成员.这个列表包括每个成员的类型和名称. struct tag {member list} variable list; 例如 注意:这两个声明会被编译器当作两种截然不同的类型,即使他们的成员列表完全相同. 下面这跳语句是非法的 ~~z 阅读全文
posted @ 2019-02-26 17:33 wjwdive 阅读(181) 评论(0) 推荐(0) 编辑
摘要:1、字符串 C语言没有字符串数据类型,因为字符串以字符串常量的形式出现或存储于字符数组中. 字符串常量和适用于那些程序不会对他们进行修改的字符串. 所有其他字符串都必须存储于字符串数组或动态分配的内存中. 字符串是一个或多个字符,并且以一个位模式全0 的NUL字节结尾 头文件 string.h 包含 阅读全文
posted @ 2019-02-22 17:06 wjwdive 阅读(362) 评论(0) 推荐(0) 编辑
摘要:1.1 一维数组 一维数组的声明: int a[10]; 这里a就是一个数组. 数组a的类型就是一个指向整型的常量指针. 但是数组和指针是 不相同 的. 数组具有特定数量的元素,而指针只是一个标量值. 只有但数组名在表达式中使用时,编译器才会为它产生一个指针常量.(注意是指针常量,不是指针变量) 1 阅读全文
posted @ 2019-02-21 17:49 wjwdive 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1、可变参数表是通过宏实现的 宏定义于stdarg.h头文件,它是标准库的一部分.这个头文件声明了一个类型var_list和三个宏 va_start、va_arg、va_end. 我们可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数的值. 参数列表在函数中用三点省略号(...). 阅读全文
posted @ 2019-02-21 09:35 wjwdive 阅读(334) 评论(0) 推荐(0) 编辑
摘要:1、递归 C通过运行时堆栈支持递归函数的实现. 递归函数就是直接或间接调用自身的函数. 一个小例子: 2、两个递归运用和用迭代优化的例子 尾递归:递归调用出现在函数的尾部,并且之后不再执行任何任务 尾递归可以方便的转换为迭代.由于递归是非常耗费内存的(每次函数调用都会在内存中分配空间),内存频繁的分 阅读全文
posted @ 2019-02-20 17:49 wjwdive 阅读(240) 评论(0) 推荐(0) 编辑
摘要:1、函数的定义 函数的定义就是函数体的实现. 语法: 类型 函数名( 形式参数 ) 代码块 函数返回类型和函数名分开写是代码风格的问题,现代语言如swift返回值在函数名和参数表的后面,这样使得某些工程工具追踪源代码时更容易查找函数名. K&RC 的旧式声明: int find_int(key, a 阅读全文
posted @ 2019-02-20 17:31 wjwdive 阅读(222) 评论(0) 推荐(0) 编辑
摘要:```C / 查找字符串 source 中 是否有指定的子串出现,如果有返回第一个匹配的字符 @param source 源 @param chars 目标 @return 返回值 / char find_char0(char const source, char const chars) { if 阅读全文
posted @ 2019-02-19 17:55 wjwdive 阅读(602) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示