ARM-C语言
本专栏来自朱有鹏老师c语言高级专题的学习和整理
.Sudhua
while(1){insist;};
展开
-
ARM_C高级笔记目录
ARM_C笔记目录ARM_C学习笔记(零)指针与数组.ARM_C高级学习笔记(二)程序获取内存的方式-栈、堆、数据区.ARM_C高级学习笔记(三)C语言中的字符串类型.ARM_C高级学习笔记(四)结构体详解.ARM_C高级学习笔记(五)共用体.ARM_C高级学习笔记(六)大端模式和小端模式.ARM_C高级学习笔记(七)枚举.ARM_C高级学习笔记(八)宏定义和预处理.ARM...原创 2020-04-04 14:52:05 · 478 阅读 · 0 评论 -
ARM_C高级学习笔记(十四)双链表算法之插入、删除、遍历节点
文章目录(一)双链表的引入和基本实现1.单链表的局限性2.解决思路:有效数据+2个指针的节点(双链表)(二)双链表的封装和编程实现(三)双链表的算法之插入节点1.尾部插入2.头部插入(四)双链表的算法之遍历节点(五)双链表的算法之删除节点(一)双链表的引入和基本实现1.单链表的局限性单链表是对数组的一个扩展,解决了数组的大小比较死板不容易扩展的问题。使用堆内存来存储数据,将数据分散到各个节...原创 2020-04-10 16:06:56 · 285 阅读 · 0 评论 -
ARM_C高级学习笔记(十三)单链表插入、遍历、删除、逆序节点
文章目录(一)链表的引入1.从数组的缺陷说起2.链表是什么样的?3.时刻别忘了链表是用来干嘛的(二)单链表的实现1.单链表的节点构成2.堆内存的申请和使用3.链表的头指针4.访问链表中各个节点的数据5.实战:构建一个简单的单链表6.将创建节点的代码封装成一个函数(三)单链表的算法-插入节点1.从链表尾部插入新的节点1.头节点引入1.什么是头节点2.从链表头部插入新的节点(四)单链表的算法-遍历节点...原创 2020-04-06 17:38:25 · 751 阅读 · 0 评论 -
ARM_C高级学习笔记(十二)main函数的返回值以及传参
文章目录(一)main函数返回给谁?1.函数为什么需要返回值2.main函数被谁调用?3.linux下一个新程序执行的本质4.实践验证获取main的返回值(二)argc、argv与main函数的传参1.谁给main函数传参2.为什么需要给main函数传参?3.表面上:给main传参是怎样实现的?4.本质上:给main传参是怎样实现的?5.给main传参要注意什么6.实例(一)main函数返回给谁...原创 2020-04-04 17:30:19 · 487 阅读 · 0 评论 -
ARM_C高级学习笔记(十一)void类型的本质与NULL
文章目录(一)void类型的本质1.C语言属强类型语言2.数据类型的本质含义3.void类型的本质4.为什么需要void类型(二)C语言中的NULL1.NULL在C/C++中的标准定义2.为什么需要NULL3.注意不要混用NULL与'\0'(一)void类型的本质1.C语言属强类型语言编程语言分2种:强类型语言和弱类型语言。 强类型语言中所有的变量都有自己固定的类型,这个类型有固定的内存占...原创 2020-04-04 11:58:55 · 275 阅读 · 0 评论 -
ARM_C高级学习笔记(十)储存类、作用域、生命周期、链接属性
文章目录概念解析存储类相关的关键字autostaticregisterexternvolatilerestricttypedef作用域详解局部变量的代码块作用域函数名和全局变量的文件作用域变量的生命周期研究变量生命周期的意义栈变量的生命周期堆变量的生命周期数据段、bss段变量的生命周期代码段、只读段的生命周期链接属性C语言程序的组织架构:多个C文件+多个h文件编译以文件为单位、链接以工程为单位三种...原创 2020-04-02 20:38:10 · 239 阅读 · 0 评论 -
ARM_C高级学习笔记(九)函数库
文章目录函数库什么是函数库?函数库的提供形式:动态链接库与静态链接库函数库中库函数的使用自己制作静态链接库并使用自己制作动态链接库并使用函数库什么是函数库?函数库就是一些事先写好的函数的集合,给别人复用。函数是模块化的,因此可以被复用。我们写好了一个函数,可以被反复使用。也可以A写好了一个函数然后共享出来,当B有相同的需求时就不需自己写直接用A写好的这个函数即可。函数库的提供形式:动...原创 2020-04-01 23:28:19 · 834 阅读 · 0 评论 -
ARM_C高级学习笔记(八)宏定义和预处理
(一)C语言预处理理论1.由源码到可执行程序的过程(逐步细化)源码.c->(编译)->elf可执行程序源码.c->(编译)->目标文件.o->(链接)->elf可执行程序源码.c->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->elf可执行程序源码.c->(预处理)->预处理过的....原创 2020-03-31 22:42:59 · 695 阅读 · 0 评论 -
ARM_C高级学习笔记(七)枚举
(一)枚举是用来干嘛的?枚举在C语言中其实是一些符号常量集。直白点说:枚举定义了一些符号,这些符号的本质就是int类型的常量,每个符号和一个常量绑定。这个符号就表示一个自定义的一个识别码,编译器对枚举的认知就是符号常量所绑定的那个int类型的数字。枚举中的枚举值都是常量,怎么验证?枚举符号常量和其对应的常量数字相对来说,数字不重要,符号才重要。符号对应的数字只要彼此不相同即可,没有别的要求...原创 2020-03-30 22:05:21 · 307 阅读 · 0 评论 -
ARM_C高级学习笔记(六)大端模式和小端模式
(一)什么是大小端模式大端模式(big endian)和小端模式(little endian)。最早是小说中出现的词,和计算机本来没关系的。后来计算机通信发展起来后,遇到一个问题就是:在串口等串行通信中,一次只能发送1个字节。这时候我要发送一个int类型的数就遇到一个问题。int类型有4个字节,我是按照:byte0 byte1 byte2 byte3这样的顺序发送,还是按照byte3 byt...原创 2020-03-30 22:04:42 · 988 阅读 · 0 评论 -
ARM_C高级学习笔记(五)共用体
(一)共用体类型的定义、变量定义和使用共用体union和结构体struct在类型定义、变量定义、使用方法上很相似。共用体和结构体的不同:结构体类似于一个包裹,结构体中的成员彼此是独立存在的,分布在内存的不同单元中,他们只是被打包成一个整体叫做结构体而已;共用体中的各个成员其实是一体的,彼此不独立,他们使用同一个内存单元。可以理解为:有时候是这个元素,有时候是那个元素。更准确的说法是同一个内存...原创 2020-03-30 22:04:08 · 261 阅读 · 0 评论 -
ARM_C高级学习笔记(四)结构体详解
(一)结构体概述结构体类型是一种自定义类型(C语言中的2种类型:原生类型和自定义类型。)结构体使用时先定义结构体类型再用类型定义变量两种定义结构体的方式第一种结构体定义时需要先定义结构体类型,然后再用类型来定义变量。第二种也可以在定义结构体类型的同时定义结构体变量举例说明#include <stdio.h>//结构体定义的第一种//先...原创 2020-03-30 22:03:29 · 789 阅读 · 0 评论 -
ARM_C高级学习笔记(三)C语言中的字符串类型
C语言的字符串类型很多高级语言像java、C#等就有字符串类型,有个String来表示字符串,用法和int这些很像,可以String s1 = “linux”;来定义字符串类型的变量。C语言没有String类型,C语言中的字符串是通过字符指针来间接实现的。C语言使用指针来管理字符串C语言中定义字符串方法:char *p = "linux";此时p就叫做字符串,但是实际上p只是一个字...原创 2020-03-28 19:59:02 · 396 阅读 · 0 评论 -
ARM_C高级学习笔记(二)程序获取内存的方式-栈、堆、数据区
(一)引入程序执行需要内存支持对程序来说,内存就是程序的立足之地(程序是被放在内存中运行的);程序运行时需要内存来存储一些临时变量。内存管理最终是由操作系统完成的(1)内存本身在物理上是一个硬件器件,由硬件系统提供。(2)内存是由操作系统统一管理。为了内存管理方便又合理,操作系统提供了多种机制来让我们应用程序使用内存。这些机制彼此不同,各自有各自的特点,我们程序根据自己的实际情...原创 2020-03-26 16:05:46 · 528 阅读 · 0 评论 -
ARM_C高级(一)(一重、二重)指针、(一维、二维)数组以及typedef的用法
文章目录(一)数组指针、指针数组(二)函数指针(三)typedef的用法(四)二重指针(五)二维数组(六)二维数组与指针的关系(一)数组指针、指针数组指针数组实质是一个数组,这个数组中存储的内容全部是指针变量。数组指针实质是一个指针,这个指针指向的是一个数组。int *p[5];指针数组int *p[5]; 核心是p,p是一个数组,数组有5个元素...原创 2020-03-23 17:51:35 · 625 阅读 · 0 评论 -
ARM—C语言学习笔记(零)指针与数组
文章目录(一)wild_pointer(1)野指针(2)野指针指向未知地址有三种情况(3)怎样避免野指针?NULL是什么?(二)const关键字与指针(1)const修饰指针的4种形式(2)const修饰的变量真的不能改吗?(3)const究竟应该怎么用?(三)深入学习数组(1)从内存角度来理解数组(2)从编译器角度来理解数组(3)数组中几个关键符号(a、 a[0]、 &a 、&a...原创 2020-03-22 18:22:38 · 1792 阅读 · 0 评论