
浅谈C语言
多啦A熊
皮皮赖赖。
展开
-
辗转相除法--最大公约数/最大公倍数
什么是辗转相除法? 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。最早出现在公元前300年古希腊著名数学家欧几里得的《几何原本》》(第VII卷,命题i和ii)中。而在中国则可以追溯至东汉出现的《九章算术》。而在现代数学中,应该是属于数论的部分的。 它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第...原创 2019-04-13 18:27:10 · 600 阅读 · 0 评论 -
C语言中生成可执行程序的过程
预处理:展开头文件/进行宏替换/去掉注释/条件编译编译:检查语法是否有错误,生成汇编代码汇编:将汇编代码转换可供机器识别的机器码链接:将多个文件链接到一起生成可执行程序...原创 2019-04-06 12:49:43 · 1884 阅读 · 0 评论 -
静态数据成员与非静态数据成员
静态数据成员 用static来声明静态成员,它是类的一部分,有该类中的所有对象共同使用和维护,实现类中数据的共享(静态区),要受private控制符影响。非静态数据成员 类的每个实例都有一份拷贝(动态区)。从内存的角度去看 类的静态成员(数据成员和函数成员)为类本身所有,在类加载的时候就会分配内存,可以通过类名直接访问 非静态成员(数据成员和函数成员)属于类的实例所有,所以只有...原创 2019-03-26 21:39:45 · 2247 阅读 · 0 评论 -
浅析死锁
什么是死锁?死锁就是两个或多个进程在执行的过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象,当进程处于这种状态时,如果没有外力的作用,这些进程都无法继续向前进行。这是操作系统层面的一个错误,是进程死锁的简称。产生死锁的原因:资源竞争系统中额资源分为可剥夺资源和不可剥夺资源。可剥夺资源指的是某进程在获得这类资源后,这份资源还可以继续被其他进程或者系统所获得,CPU和主存均属于可剥夺资...原创 2019-05-09 17:11:38 · 312 阅读 · 0 评论 -
浅析段错误和栈溢出
什么段 我们在学习微机原理的时候就遇到过段,它代表在一个可执行文件中各种的类型信息存放的地方。 正文段:text用于存储指令; 数据段:data用于存储已初始化的全局变量; bss段:用来存放程序中未初始化或者初始化为0的全局变量和静态变量; 堆栈段:stack和其他段一样有着自己的大小,一旦越界同样会爆段错误。它是在运行时,程序动态创建的一个堆栈段,放着调用栈,保存着函数调用...原创 2019-04-22 22:33:36 · 1462 阅读 · 0 评论 -
二维数组按行和按列遍历的效率
按行遍历的效率大概是是按列遍历的0.5倍 在c语言中,数组在内存中是按行存储的,按行遍历时可以由指向数组第一个数的指针一直向后遍历,由于二维数组的内存地址是连续的,当前行的尾与下一行的头相邻,所以可以直接到下一行我们眼中的二维数组:内存中的二维数组:按行遍历比按列遍历的效率高体现在这些方面: 1. CPU高速缓存:在计算机系统中,CPU高速缓存(英语:CPU Cache,在...原创 2019-04-20 17:30:50 · 10931 阅读 · 3 评论 -
c语言常用输出格式
char c; char s[20]; int i=1234; float f=1.234567894567879; double d=0.12345678912345678; strcpy(s, "Hello,World"); c='\x41'; printf("i=%d\n", i); //按照十进制整数...原创 2019-04-09 23:13:40 · 928 阅读 · 0 评论 -
运算符的优先级(Operator Precedence)总结(表)
概念 在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的...原创 2019-03-11 22:54:10 · 2987 阅读 · 0 评论 -
浅谈C语言指针
什么是指针?在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中的另一个地方的值。由于通过地址能找到所需的变量单位,可以说,地址指向该变量单元。因此,降低至形象化的称为“指针”。意思是通过它能找到以它位地址的内存单元。图解指针:代码解析#include <stdio.h>int main(){int a = 20;原创 2019-02-13 13:28:05 · 207 阅读 · 0 评论 -
算法的五大特性
输入(Input)算法可以有0个或多个输入,用来说明对象的初始值,其中的0的输入的意思是指算法自己已经定出了初始条件输出(Output)算法中必须有1或多个输出,因为输出是用来说明数据处理后的结果,如果一个算法没有了输出,就失去了存在的意义确定性(Definiteness)算法中的每一步都有确定的含义,不会出现歧义(也称为明确性)有穷性(Finiteness)算法在执行了锁设置好的步...原创 2019-02-16 20:52:45 · 2001 阅读 · 0 评论 -
浅谈野指针
今天被同事嘲笑:你就是一个没有对象的野指针,,,那就让我们来看一下到底什么是野指针原创 2019-02-15 20:05:30 · 1436 阅读 · 0 评论