![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c和指针
sif_666
If you can't explain it to a six year old, you don't understand it yourself.
展开
-
《C和指针》阅读笔记(11)---单链表数据结构的设计和实现(2)
本文是承接上文《C和指针》阅读笔记(11)—单链表数据结构的设计和实现的延续。提供第二种单链表的设计及实现方法。link.h 详细信息已在注释中说明,仔细分析代码即可。#ifndef _LINK_H#define _LINK_H/* * 本单链表接口使用宏实现 * 该系列接口的设计与业务完全无关 * 节点内存的分配与释放由调用者负责 * 业务结构和逻辑可在此接口上再次封装 * */#ifdef __cplusplusextern "C"{#endif/** * @bri原创 2020-12-12 16:03:00 · 129 阅读 · 0 评论 -
《C和指针》阅读笔记(11)---单链表数据结构的设计和实现
前面的10篇文章总体上过了一遍c语言的基础,这些基础是非常重要的基石。有助于我们理解下一个阶段的内容,我们常说程序=数据结构+算法,本文将介绍一种常用的数据结构,链表。给出的示例代码具备复用性,如果你不关心内功的修炼,基本上可以拿来主义(白嫖);如果想提升内功,不妨仔细阅读代码。什么是链表链表(linked list)就是一串节点组成的集合,每一个节点就是一个独立的数据结构。可以将链表想象成一串珍珠,整串珍珠就相当于一个链表,每个珍珠就可看成是一个节点。链表的类型有单链表和双链表,如果链表头尾相接那就原创 2020-12-05 00:03:13 · 148 阅读 · 0 评论 -
《C和指针》阅读笔记(10)---动态内存
本文继续对《C和指针》的第11章进行解读,这一章的内容非常简单,主要介绍了4个和动态内存分配相关的系统API,怎样用好这几个API进行动态内存分配及管理才是我们需要掌握的。废话少说,干就完了!文章目录mallocfreecallocreallocmallocvoid *malloc(size_t size);malloc在heap上动态分配size大小的内存,如果分配成功,则返回一个指向这块内存的指针;如果失败,则返回NULL。作为一个c语言的程序员,一个好的编码习惯是在malloc后,立即编写原创 2020-12-02 00:58:52 · 153 阅读 · 0 评论 -
《C和指针》阅读笔记(9)---结构体和联合体
本文继续总结《C和指针》第10章的内容,主要讲解结构体和联合体。文章目录结构体结构体声明结构体成员结构体成员的访问结构体对齐作为函数参数的结构体结构体位段联合体关注我结构体前面我们讲解过数组,我们知道数组是存储相同数据类型的元素的集合,数据的每个元素可以通过下标引用或指针间接访问。在实际的工程中,有非常多的情况下需要将不同数据类型的元素聚合在一起来统一表达,于是,结构体应运而生。结构体也是一些值的集合,这些值在结构体的概念中称之为成员,每个成员可以是不同的数据类型,每个成员都有自己的名字,可以通过名原创 2020-11-22 19:54:57 · 190 阅读 · 0 评论 -
《C和指针》阅读笔记(8)---字符串处理合集
本文继续总结《C和指针》第9章的内容,本章的主要内容是字符串,讲解使用标准库函数对字符串进行处理。文章目录字符串字符串长度字符串复制字符串连接字符串比较字符串查找查找某个字符查找字符集合中任意字符查找子字符串获取字符串前缀的长度查找指定标记str不能是字符串常量strtok循环获取tokenstrtok_r可重入关注我字符串字符串就是零个或多个字符的序列,该序列以一个NUL字节结尾。NUL字节是一个所有bit都为0的特殊字节。NUL字节也叫做"尾零"。字符串所包含的字符内部不能出现NUL字节,这个限原创 2020-11-19 21:41:45 · 242 阅读 · 0 评论 -
《C和指针》阅读笔记(7)
本文继续总结《C和指针》第8章的内容,本章的内容由3个部分构成:一维数组、多维数组、指针数组。文章目录一维数组一维数组定义一维数组初始化一维数组访问下标访问指针访问一维数组参数多维数组多维数组定义多维数组初始化多维数组访问多维数组参数指针数组指针数组定义指针数组初始化关注我一维数组通常定义一个整型变量使用 int var = 0;如果想要定义一组整型变量,我们可以这样定义:int a1 = 0;int a2 = 1;int a3 = 2;int a4 = 3;int a5 = 4;//原创 2020-11-10 13:38:43 · 101 阅读 · 0 评论 -
《C和指针》阅读笔记(6)
本文继续总结《C和指针》第7章的内容,本章的内容由6个部分构成:函数定义、函数声明、函数参数、ADT、递归与迭代、可变参数列表。文章目录函数定义函数声明函数参数的传递抽象数据类型(ADT)递归与迭代可变参数列表关注我函数定义ANSI C标准的函数语法形式:// 风格1类型 函数名(形式参数)代码块// 风格2类型函数名(形式参数)代码块// 例如int func1(int a, int b){ // statements;}intfunc2(char a, fl原创 2020-11-03 14:54:31 · 137 阅读 · 0 评论 -
《C和指针》阅读笔记(5)
《C和指针》的第6章主要介绍了指针的定义以及指针的使用。指针对于很多C语言的初学者来说,简直就是一场"噩梦",谈指针色变。其实,当你真正理解了指针后,真的非常简单,只不过在使用的时候要更加细心一点罢了。本文主要是介绍自己对于指针的理解。文章目录地址和值变量指向**类型**的指针指针的解引用(dereference)指针常量、常量指针、指向常量的指针常量二级指针关注我地址和值首先,要有地址和值的概念。打个比方,平常我们去就酒店开房,工作人员就会给你一张指定房间的房卡,一般房卡上就会写着房号,你就要根据原创 2020-10-28 00:06:17 · 235 阅读 · 0 评论 -
《C和指针》阅读笔记(4)
《C和指针》第4章主要介绍C语言的语句,第5章介绍了操作符和表达式,阅读完这两章后,尽管是些非常非常基础的知识点,但我还是想将这两章一起做一个总结。一方面是为了保持该系列文章的完整性;另一方面,语句、表达式、操作符三者之间从宏观上来看,还是有内在联系的,而这种联系才是我想总结的重点。文章目录语句普通表达式语句if语句while语句for 语句do-while语句switch 语句goto 语句操作符算术操作符移位操作符位操作符赋值操作符复合赋值符单目操作符关系操作符逻辑操作符条件操作符逗号操作符关注我因原创 2020-10-21 00:30:34 · 342 阅读 · 0 评论 -
《C和指针》阅读笔记(3)
《C和指针》第三章的内容还是基础部分,主要介绍了各种基本数据类型,数据类型的特点,变量的声明以及说明符的三个属性。本文的重点是对 标识符、说明符及其属性的理解,是非常重要的基石。文章目录标识符(identifier)说明符(specifier)作用域(scope)文件作用域代码块作用域代码块作用域函数作用域原型作用域链接属性(linkage)外部链接(external linkage)内部链接(internal linkage)空链接(none linkage)存储类型(storage class)普通内原创 2020-10-17 17:13:16 · 177 阅读 · 0 评论 -
《C和指针》阅读笔记(2)
《C和指针》第二章的内容也非常简单,主要介绍了程序的编译过程和词法规则。个人认为对于初学者来说,可能编译过程能难于理解一些,所以本文会对编译过程再扩展一下,帮助理解;同时,也扩展一点关于C标准发展的timeline。关于词法规则的内容,理解上没有什么难度,多熟悉多使用,就慢慢的记住了。文章目录C标准K&R CANSI C(C89)C90C99C11两种环境编译预处理(preprocessing)编译(compilation)汇编(assembly)链接(linking)关注我C标准本书中会经常原创 2020-10-14 08:15:59 · 125 阅读 · 0 评论 -
《C和指针》阅读笔记(1)
第一章的内容侧重点在于介绍使用C语言来实现一个完整程序,整体的样貌,使读者有个相对完整一点的认识,程序的输入,数据的处理,输出。阅读时不用太关注程序本身的细节,只用知道这个程序是干什么,对源码的构成有个印象就好了。文章目录留白注释预处理指令main()关注我留白对于初学者来说,c语言的书写格式首先是需要知道的。C是一种自由格式的编程语言,并没有规则要求你必须怎样书写语句,但是若能遵守一些约定还是非常有必要的,可使代码更易阅读,这一点非常重要。那么这个约定就是代码的留白。通常使用指标符-tab来缩进,使原创 2020-10-11 12:05:12 · 113 阅读 · 0 评论