指针的奇技淫巧四_指针和数组

概述 数组是能用索引访问的同质元素的联系集合,这里的连续是指数组元素在内存中是相邻的,中间不存在空隙,而同质是指的相同的数据类型,数组声明用的[],并且可以是多维数组。 一维数组一维数组为线性结构,用一个索引访问成员, //声明一个5个元素的数组, int test[5]; 注意: 数组索引0开始 n-1结束c语言没有...

2018-12-17 01:44:12

阅读全文

指针的奇技淫巧三_指针和函数

程序的堆栈 堆和栈的区别其实不用过于的去强调他们了,我感觉理解下概念就好,比如程序哪些操作会在堆里,哪些会分配到栈里,它们实际使用中的差别什么的就好了 堆区:程序员自己申请,声明大小,释放栈区:系统自动分配,自动释放 通过指针传递和返回数据 作为一个phper来说function的返回值直接一个return就解决问...

2018-12-09 23:25:37

阅读全文

指针的奇技淫巧二__C的动态内存管理

指针的强大很大程度上源于它能追踪动态分配的内存,内存管理对所有的程序来说都是相当重要的,有程序运行时内存的隐式管理,也有我们下面讲的自己把数据推到内存堆上管理。PHP对于这一点额。。。 动态内存分配在C中动态分配内存的基本步骤有: 用malloc类的函数分配内存;用这些内存支持应用程序;用free函数释放内...

2018-12-02 22:37:52

阅读全文

指针的奇技淫巧一__认识指针

指针是一个C语言中比较重要的概念,C语言对内容管理的技巧也逃不掉指针的概念。这边我结合《深入理解C指针》这本书做了一些笔记。 为什么要精通指针 写出快速高效的代码为解决很多类问题提供方便的途径支持动态分配内存使表达式更加的紧凑和简洁提供用指针传递数据结构的能力而不会带来庞大的开销保护作为参数传递给...

2018-12-01 11:34:47

阅读全文

C语言自学系列五_函数指针的定义与应用

什么是函数指针 函数指针如字面表达一样,是指的指向函数的指针。它的用处可以说很广了,在我认知和学习到的有2种用法,一是直接调用 如 function(a[i]) 其实是 (*function)(a[i]),的缩写。第二种是 function(function2)类似于php中的依赖注入(本质差别很大,只是举个例子)。作为phper的我了解到这的时候可以说是耳目...

2018-11-15 00:31:00

阅读全文

C语言自学系列四_链表与动态链表

链表定义 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操...

2018-11-06 01:42:07

阅读全文

C语言自学系列三_结构体_枚举与位字段

序上篇C语言自学系列二_结构体,中结构体还有两个特性需要补充枚举变量和位字段,又是一个深夜希望明天能起得来吧。 枚举 有时候你不想保存数字或者文本,而是想保存一组符号。如果你想记录一周中的七天时间,因为数值在可预料范围内,并且很好列举出来。所以有了枚举 定义与调用方法一: enum sex {man,woman,ka...

2018-10-30 01:33:47

阅读全文

C语言自学系列二_结构体

C语言的结构体是什么? 结构 是C语言中一种让用户自定义可用数据类型,它让你可以存储不同类型的数据项,笔者感觉类似于json的键值对表现形式 我们把人看做一个构体,年龄,性别,婚姻状况既是对人的不同数据类型的描述 定义一个结构体 定义结构体的关键词struct是structured date type的缩写,有了结构体就可以像...

2018-10-28 01:23:17

阅读全文

C语言自学系列一_C语言编译篇

编译过程st=>start: gcc cpp=>operation: 预编译 gcc=>operation: 编译 as=>operation: 汇编 ld=>operation: 链接 e=>end: 生成执行文件 st->cpp->gcc->as->ld->e预编译 编译器要做的第一件事就是修改代码。编译器需要用# include指令添加相关头文件;编译器可能还需要跳过程序中的某些代码,或补充一些代码。改完以后...

2018-10-27 12:58:22

阅读全文