语句与控制流
一个函数包含声明部分和执行部分,执行部分由语句组成,语句形成指令,声明部分不是由语句组成,所以声明部分不形成指令。
c语句分类:
(1)控制语句:
1.条件语句if……else……
2.循环语句:for(表达一;表达二;表达三)。while(表达式)。do……while(表达式);//多层循环嵌套时,长循环放内层,短循环放外层。
3.跳过本次循环语句:continue
4.结束switch或循环语句:break
5.多分枝选择语句:switch
switch使用例子:
switch(整型数据(包括枚举型)或字符型数据)
{
case 常量1: 语句1; break;
case 常量2: 语句2; break;
case 常量3:
case 常量4: 语句3; break;//此时常量3和常量4都进入到语句3
...
default: 语句n;(没有default时不符合则跳过)
}
6.函数返回语句:return
7.转向语句:goto,用的时候注意在要执行的位置标记一个mark,再在使用的时候写goto mark
(2)函数调用语句
如printf等等
(3.)表达式语句
赋值=,++i等等
(4)空语句
一行只有一个分号的语句
(5)复合语句
用{}括起来的语句块
赋值语句
赋值表达式一般形式为,变量,赋值运算符,表达式。其中算数表达式,常量以及赋值表达式不能放到左边
要注意再赋值语句中例如a=(b=5)中运算顺序总是赋值符号右边运算到左边
在赋值过程中如果把站字节比较多的值赋给站字节比较少的变量时,直接截取相应数据范围的数据
输出输入语句
printf语句:1.d格式符,用来输出有符号的十进制整数例如,%5d表示的是数据占据五列,且顺序靠右,如果想靠左就变成%-5d,但%+5d只表示数据为正。
2.c格式符,用来输出一个字符
3.s格式符,用来输出一个字符串%5s,在printf里是只输出前5个字符,在scanf里是只读取前五个字符
4.f格式符,用来输出实数,一般都是%f,把全部的实数输出后,输出小数点后6位
如果想精确输出多少位实数和小数,就变为%m.nf,m代表小数点在内的整个浮点数的长度,而不单单指整数部分,n代表输出多少位小数
5.e格式符,用来输出指数形式实数,同样可以用%m.ne来声明
6.o格式符,连同符号位以八进制的整数形式输出
7.x格式符,连同符号位以十六进制的整数形式输出,此时表达为%X(要大写)
8.u格式符,用来输出无符号整数
9.g格式符,用来输出浮点数,由系统自动选择由e或f格式输出,此时G为大写
10.p格式符,用来输出地址
scanf语句:一般格式为scanf(格式控制,地址表列)
其中|可以用来输出长整型数据如|d,|o,|x等等,h可以用来输出短整型数据
如hd……若为scanf(“a=%d b=%d”, &a, &b),则a=1与b=2之间必须要有1个以上的空白字符,也就是&a,后要空格一下在输入&b、
sprintf语句:一般格式为:sprint(目标字符串,格式控制,地址表列),作用是把字符串输入到目标字符串,注意字符串要足够大可以容纳要打印的内容,不然会内存溢出。
sscanf语句:一般格式为:sscanf(源字符串,格式控制,地址表列)
(4)字符输入输出,putchar(c),用来输出字符变量c,若为整数,则按照ASCLL码处理
c=getchar(),用来输入一个字符,包括控制字符,注意getchar函数返回的不是char类型而是int类型。