一周学完c系列 第四天笔记
循环结构
while循环
while(表达式)
{
//语句;
}
表达式成立则重复执行循环体 直到表达式不成立
执行表达式
真
循环体
假
跳出循环
do while循环
do
{
循环体
}while(表达式);
for循环
for(表达式1;表达式2;表达式3)
{
//语句;
}
表达式1 初始化语句
表达式2 循环表达式语句
表达式3 自增自减变量变化语句
执行顺序
表达式1→表达式2→循环体→表达式3→表达式1→
表达式省略问题
for语句一般形式中‘表达式1’可以省略,此时应在for语句之前为循环变量赋初值。
如果表达式2省略,循环无终止进行
表达式3也可以省略,此时需要另设计循环结束条件
可以只给表达式2即只给循环条件
表达式填写问题
表达式1可以是设置循环变量初值得赋值表达式,也可以是与循环变量无关的其他表达式
表达式2一般是关系表达式或逻辑表达式,但也可以是任意表达式,只要其值为非零就循环执行表达体
表达式3一般是修改循环变量语句也可以是任意表达式
无限循环
while循环 无限执行情况下使用 判断情况始终为真
判断
循环条件在循环体中有无被改变
break
跳出switch结构
循环语句中跳出循环结构
continue
跳过本次循环
只能在循环结构中使用
嵌套循环
注意循环变量初始化问题
break只能跳出一层循环
二维数组
int n[][];
定义
数组时第一维长度可以不指定 第二维需要指定
列定行内有多少元素数
最高维可以省略
初始化
全部写在花括号内
部分初始化
分行给二维数组赋初值
大括号里再使用大括号
根据大括号内的大括号个数自动推测行数
数组元素访问
双下标运算符
通过第一个下标运算符取指定行
使用二维数组中的一维数组
通过第二个取出指定的列
使用二维数组中的一维数组的元素
遍历
两层循环遍历
两层嵌套循环
外层循环遍历一行
内层循环遍历每一列
_countof(数组名)读取数组字符长度
预处理
宏定义
条件包含
条件编译
宏定义
在程序中某段代码的一个别名
为程序调试 移植提供便利
以#define开头 结尾不用分号
编译预处理时将源程序中所有的标识符替换成语句序列
注意:宏名一般用大写字母,以便区分变量名 编译预处理只做替换不做语法检查,只有在编译的时候才对已经
展开宏名的源程序进行语法检查。宏名的有效范围是从定义位置到文件结束。
终止宏可以用#undef命令
此语句之后的宏定义无法使用
无参宏
执行单一替换功能
可以引用已经定义的宏名
对双引号括起来的字符串内的字符,不进行宏的替换操作
有参宏
带参数扩大宏的应用范围
#difine 标识符(参数表) 字符串
宏的内容中有算数运算要避免运算符优先级运算 应给带宏参数加小括号
避免在使用宏的时候使用自增自减运算符
宏名和参数之间不能有空格 否则空格后面的所有字符序列作为替换字符
#include< >标准方式
只按照标准方式在c语言编辑器的数据库头文件中查找要包含的文件
#include“ ”通用方式
先在源文件的目录中查找要包含的文件,若未能找到,则按照标准方式查找
三目运算符
表达式?操作1:操作2
真则执行1假则执行2
页:
[1]