
C语言
cornfieldchase
这个作者很懒,什么都没留下…
展开
-
define的边缘效应
在使用 define 时,我们注意其自身的“边缘效应”,例如:#define N 2+3double a;a = (float)N/(float)2;在编译时我们预想 a=2.5,实际打印结果却为 3.5 。原因是在预处理阶段,编译器将 a=N/2 处理成 a=2+3/2,这就是 define 宏的边缘效应。所以我们应该写成 :#define N (2+3)#include <stdio.h>#define N 2+3//正确写法 #define N (2+3)int mai原创 2020-08-06 00:22:58 · 1040 阅读 · 0 评论 -
const和define的区别
const定义的是变量不是常量,只是这个变量的值不允许改变是常变量!带有类型。编译运行的时候起作用存在类型检查。define定义的是不带类型的常数,只进行简单的字符替换。在预编译的时候起作用,不存在类型检查。区别(1) 编译器处理方式不同#define 宏是在预处理阶段展开。 const 常量是编译运行阶段使用。(2) 类型和安全检查不同#define 宏没有类型,不做任何类型检查,仅仅是展开。 const 常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方...原创 2020-08-05 22:26:55 · 6577 阅读 · 2 评论 -
线性表——顺序表部分知识归纳及动态存储中各接口的实现(C语言)
线性表: 线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是N个具有相同特性的数据元素的有限序列,在实际中广泛使用。 线性表在逻辑上是线性结构,也就说是连续的一条直线,但是在物理结构上并不一定是连续的,在物理结构上存储时,通常以数组和链式结构的形式进行存储。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适...原创 2019-07-23 17:34:54 · 524 阅读 · 0 评论 -
简单分析static关键词的作用(C语言)
首先我们以两段代码为例,看看他们的运行结果分别是什么:代码一:#include <stdio.h>void test(){ int num = 0; num++; printf("%d ", num);}int main(){ int i = 0; for (i = 0; i < 10; i++) { ...原创 2019-07-31 16:19:44 · 710 阅读 · 1 评论 -
对动态内存分配函数malloc、calloc、realloc、free的理解
动态内存分配: 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。 以一个数组为例:在定义数组时给定了内存空间,如果一开始给定的内存空间足够大,就能够放入需要放入的所有数据元素,但如果给定的内存空间小于所需要放入的数据元素个数时,我...原创 2019-07-27 01:31:01 · 4970 阅读 · 0 评论