- 博客(24)
- 资源 (40)
- 收藏
- 关注
原创 C语言中的野指针问题
C语言中的野指针问题一、野指针 1、指针变量中的值是非法内存地址,进而形成野指针 2、野指针不是NULL指针,是指向不可用内存地址的指针 3、NULL指针并无危害,很好判断,也很好调试 4、C语言中无法判断一个指针所保存的地址是否合法二、野指针由来 1、局部指针变量没有初始化 2、指针所指向的变量在指针之前被销毁 3、使...
2018-07-10 22:28:27
12358
1
原创 C语言内存分布
C语言内存分布一、程序内存分布可由三个区域构成: 1、栈区主要用于函数调用,保存函数参数,局部变量,函数返回地址 2、堆区主要是动态内存的申请和归还 3、静态存储区用于保存全局变量和静态局部变量二、栈 1、栈是现在计算机程序里最为重要概念之一 2、栈在程序中用于维护函数调用上下文 3、函数中的参数和局部变量存储在栈...
2018-07-09 14:30:40
866
原创 C语言数组和指针总结(上)
C语言数组和指针总结(上)1、相同点: a+n <=> (unsigned int)a + n*sizoeof(*a) 如果a是一个数组那么a+n是指向第n个元素地址 p+n <=> (unsigned int)p + n*sizoeof(*p) 如果p指向的是一个数组那么p+n是指向第n个元素地址 p[n] <=> *(p+n) <=...
2018-07-05 11:24:52
548
原创 C语言实现字符串循环左移和右移
C语言实现循环左移和右移这个没有什么好说的,直接上代码:#include <stdio.h>//写一个函数 实现功能:输入字符串,向右循环或者逆时针移动N字节,再输出这个字符串/* //比如:左移2字节 //左边不变,右边变 p[0] = s[4]; //LEN - (n - i)%LEN i = 0 p[1] = s[5]; //LEN - ...
2018-06-19 18:36:53
11998
1
原创 C语言#和##操作符使用方法
C语言#和##操作符使用方法一、总结 1、#操作符 1:#操作符用于预处理阶段,将宏参数转换为字符串,只有宏定义中使用(#define) 使用方法: #define STRING(x) #x printf("%s\n",STRING(Hello...
2018-06-03 20:33:35
7849
原创 C语言#error和#line使用方法
C语言#error和#line使用方法一、使用方法: 1、#error方法: 2、#line方法: 二、代码测试: 1、#error #include <stdio.h>#ifdef __cplusplus #error this file should be processed with C+...
2018-05-29 19:34:22
27981
3
原创 C语言宏定义使用方法和注意事项
C语言宏定义使用方法和注意事项一、总结 1、 2、 3、二、代码测试(ubuntu 10 gcc平台) 1、代码:#include <stdio.h>#define ERROR -1#define PATH1 "D:/test/test.c"#define PATH2 D:/test/test.c#define PATH3 ...
2018-05-28 21:06:22
6521
1
原创 C语言编译和链接过程简介
C语言编译和链接过程简介一、编译过程简介 编译过程可以分为4部分内容组成 预处理器->编译器->汇编器->链接器 1、预处理器 (1)、处理所有的注释,以空格代替 (2)、讲所有的#define删除,并且展开所有的宏定义 (3)、处理条件编译指令#if,#ifdef、#eli...
2018-05-27 16:56:58
15924
5
原创 C语言struct和union和sizeof关键字
C语言struct、union、sizeof简单的我就不讲了,直接上代码#include <stdio.h>#include <malloc.h>//空的结构占用多少个内存呢(实际gcc编译器不占用内存,bcc和vc编译器编译错误,因为结构体创建之初就是为了集合各种不同变量,但是创建空的结构体就是违背了结构体意图,所以编译错误)struct TS{ };...
2018-05-24 10:51:43
627
转载 C语言内存分布图
C语言内存分布原文章在这里:https://blog.youkuaiyun.com/love_gaohz/article/details/41310597一.在学习之前我们先看看ELF文件。ELF分为三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library),三种格式基本上从结构上是一样的,只是具体到每一个结构不同。下面我们就从整体上看看这3种格式从文...
2018-05-24 10:48:58
7881
2
原创 你真的理解了const和volatile关键字么?(我看不一定)
C语言const和volatile关键字 这部分内容比较简单,我这里直接先做总结,然后通过写三个测试代码,体会其中关键一、总结 1、const使得变量具有只读属性 2、const不能定义真正意义上的常量 3、const将具有全局生命期的变量存储于只读存储区 4、volatile强制编译器减少优化,必须每次从内存中取值 5、const修饰...
2018-05-20 23:29:55
10856
5
原创 C语言三目运算符和逗号表达式
一、三目运算符定义:(a ?b : c) 当a的值为真时,返回b的值;否则返回c的值 二、三目运算符(a ?b : c) 返回类型: 1、通过隐试类型转换规则返回b和c中的较高类型 2、当b和c不能隐试转换到同一类型时将编译出错 下面通过写一段代码测试下: ...
2018-05-08 23:34:50
5390
2
原创 你真的理解了C语言++和--运算符么?
这个主题对于刚开始学习C语言时可能会觉得很简单啊,那好你告诉我下面几个题目的输出是什么,你要是能说对,并且说出为什么,那你就可以不用往下看了 int i = 0,j = 0; 1、j = (i++)+(i++)+(i++); //而不是j = i++i++i++; 2、j = (++i)+(++i)+(++i); //而不是j = ++i++i+...
2018-05-08 17:17:24
18600
13
原创 C语言 转义符\t占用几个空格
这个问题,在你学习编程过程中可能会考虑到,有时为了字节对齐而使用转义符中\t,但是到底\t占用几个空格呢?下面我们首先通过程序来体验下,然后在总结#include <stdio.h>int main(){ printf("123456\t123\t45\n"); printf("12\t123456\t78\n"); printf("----...
2018-05-01 22:58:09
40919
12
原创 C语言 接续符和转义符
C语言接续符和转义符这个主题可能没有太多要讲的, 接续符:\ 接续符是用来告诉编译器行为的符号,那编译器遇到接续符是什么行为呢,就是去掉接续符,然后把下一行连接到现在这行上面 转义符:转义符是主要用于表示无回显字符,也用于表示常规字符,转义符必须放在单引号或者双引号里面 注意:反斜杠同时具有接续符和转义符的作用 1...
2018-05-01 17:54:12
628
原创 C语言 Base64算法
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128...
2018-04-23 22:44:38
5584
4
原创 C语言 单引号和双引号
刚开始学习C语言时没有注意过这个问题,最近看了狄泰软件的唐老师C进阶视频时发现这里面还有东西需要注意的,下面我讲下,希望对新人有所帮助(这里面讲的内容主要参考狄泰软件的唐老师C进阶教程中的单引号和双引号课题) 单引号:单引号实际就是字符字面量,字符字面量就是字符(就是ASCII对应字符),就是整数 双引号:双引号实际就是字符串字面量,字符串字面量就是字符指针,就是字符...
2018-04-22 22:59:36
21797
6
原创 C语言 交换两个变量数值多种方法
在我们学习编程过程中一定编写过交换两个变量数值方法,这里我也搜集网络一些方法平台:ubuntu10 gcc编译器下面再写下交换两个变量值的方法:#include <stdio.h>//第一种不讲了,太简单了,大部分都会想到,看着很LoW,所以接着往下看#define SWAP1(a, b) \{ \ int t = a...
2018-04-22 18:49:34
1828
1
原创 C语言位运算符
C语言位运算符包括: & 按位与 | 按位或 ~按位取反 ^ 按位异或 >> 左移 << 右移位运算符是c语言一部分,而且这部分没有什么难度,但是仔细琢磨还是有点东西要注意的一、首先对位运算符做些总结: 1、位运算符只能对整形数据(包括字符型数据),不能对浮点数类型操...
2018-04-22 18:44:03
941
转载 二进制如何转十进制,十进制如何转二进制
学计算机的朋友刚开始学习时都要接触进制之间的转换,二进制、十进制、八进制、十六进制等,这个是很枯燥的,转来转去就转蒙圈了,别蒙别蒙,今天咱们一个一个搞定,看看二进制和十进制之间如何相互转换的。 转成二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制;1、 正整数转成二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。 也就是说...
2018-04-06 17:57:29
36865
5
原创 STM32生成hex和bin 程序,下载之后有的功能不行
项目名称:二合一阅读器功能要求: 1、能够对身份证ID读取和身份证里面具体信息(姓名,性别,地主,图片,指纹)进行读取 2、能够普通IC、CPU卡进行操作(这里不对它进行讲解)硬件平台:STM32 THM3070 公安部模块(SAM模块,对身份证里面信息进行编码和解码用的)编译软件:keil5下载工具:ST_LINK V2下载软件:S...
2018-04-02 16:06:57
2236
1
Linux.0.01内核分析与操作系统设计-创造你自己的操作系统.卢军
2021-09-12
Linux内核完全注释:基于0.11内核(修正版V3.0)
2021-09-12
图解TCPIP.zip
2021-09-12
自己动手写操作系统.于渊.无水印影印版.zip
2021-09-12
防碰撞算法chap05(2013).pdf
2020-06-04
BC26NB_OpenCPU_SDK_BETA0704源码
2020-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人