为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常对……
Continue reading
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象……
Continue reading
以下内容为是从百度百科中摘录过来的,写的很精彩,其中的重点部分,忍不住标注了下或者又注释说明了下。 typedef用法小结 在C语言的情况下,与C++稍有出入。typedef在结构体定义,还有一些数组等地方都大量的用到。归纳一下: 来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类……
Continue reading
网上看到的预编译汇总: #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。 该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。 (1) 简单的宏定义: #define 例: #define PI 3.1415926 (2) 带参数的宏定义 #define ( ) 例: #define A(x) x 一个标……
Continue reading
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。其定义方式为:数据类型 * 指针变量名 如int *p 其中p为内存里的一个地址,相当于&a之类的值。而*p则是取出该内存块里存放的数据值。而& *字符的运算相当于倒数运算。遇到两者结合时,所得的结果为取消这两个……
Continue reading
猴子吃桃问题:小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个,如此下去,到第真十天恰好还剩一个桃子。问第一天小猴摘了多少桃子? 分析:每一天的桃子数都是后一天的桃子数的2倍加上一个。因此用数学关系表示如下: peach(n)=1???? (day=10) peach(n)=(peach(n+1)+1)2?? (1<=day<10) 因此,程序代码可写为: #include<stdio.h> int peach(int day){ ??? int n; ??? if(day10)n=1; ??? else……
Continue reading
西安航空技术高等专科学校课件 http://www.xihangzh.com/cyykj/wlkc/main.htm 东北大学——高级程序语言设计 http://www.neu.edu.cn/cxsj/online/c2/c2index.html……
Continue reading
树是一个或多个结点组成的有限集合T,有一个特定的结点称为树的根结点,其余的结点被分成m(m≥0)个不相交的集合T1、T2、…、Tm,每一个集合本身又是一棵树,被称为这个根结点的子树。 图5.11所示是一棵具有10个结点的树,结点A为树的根结点,除A之外的其余结点分为3个不相交的集合……
Continue reading
对于队列我们并不陌生,商场、银行的柜台前需要排队,餐厅的收款机旁也需要排队。队列也是一种特殊的线性表,是一种只允许在表的一端进行插入操作而在另一端进行删除操作的线性表。表中允许进行插入操作的一端称为队尾,允许进行删除操作的一端称为队头。队头和队尾分别由队头指示器(或称队头指针)和……
Continue reading
栈是一种特殊的线性表,是一种只允许在表的一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。表的另一端称为栈底。栈顶的当前位置是动态的,对栈顶当前位置的标记称为栈顶指针。当栈中没有数据元素时,称之为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退……
Continue reading