嵌入式开发之C语言基础第三天&第四天学习笔记
来源:互联网 发布:爱知日语价格 编辑:程序博客网 时间:2024/05/10 11:43
c语言(三)---运算符与分支语句
单字符接收与输出
getchar()
如果接收单个字符,可以使用getchar()函数
char ch = getchar();
就会从键盘接收一个字符,赋值给ch变量
putchar()
输出单个字符
putchar(ch);
putchar('a');
缓冲区
键盘输入的数据,首先存放在缓冲区中,直到用户按下enter键,才会将缓冲区的数据输入到程序中,但是scanf函数,会残留最后按下的enter键也就是会残留一个回车字符在缓冲区中,从而导致后面的接收出现异常;
运算符优先级
1.伪运算符最高
2.单目运算符第二
3.双目运算符中:算术运算符>位运算符>逻辑运算符
4.同级运算符看结合性,右结合性的运算符只有赋值运算符与单目运算符
自增自减运算符
++/--
a++; a自身加1,相当于a = a + 1;
a--; a自身减1,相当于a = a - 1;
a = 1, b = 1;
c = a + b++;
表达式相当于两步:
1.c = a + b
2.b = b + 1
所以c = 2;b = 2;
c = a + (++b);
相当于两步:
1.b = b + 1;
2.c = a + b;
所以b = 2; c = 3;
if判断
c语言中对于判断表达式,0为真,非0为假
a = 9 这个表达式的结果就是9;
if(表达式或直接写数字);
if(0)也是可以的
一般形式
if ()
{
}
两路分支
if(a == 9)
{
}else{
}
多路分支
if(){
}else if(){
}else{
}
当if判断后只有一句代码的时候,{}可以省略:
if(a > 0)
printf("a 大于 0");
逻辑运算符
&& 逻辑与 且 条件1 &&条件2
|| 逻辑或 或 条件1 ||条件2
! 逻辑非 不是 !条件
switch语句
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
case 常量表达式n:
语句n;
break;
default:
语句n+1;
}
当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
for循环
for(循环变量赋初值;循环条件;循环变量增值)
{
循环语句;
}
执行顺序:1、初始语句 2、执行条件是否符合? 3、循环体 4、增加增量
for循环的循环体如果只有一条语句,for循环的大括号可以省略
(1)for语句的一般形式中的"表达式1"可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i<=100;i++){....};
(2)如果表达式2省略 即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真.
(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.
(4)可以省略表达式1和表达式3,只有表达式2即只给循环条件.
(5)三个表达式都可以省略,如:
for(;;)语句
相当于while(1)语句
即不设初值 不判断条件(认为表达式2为真值)循环变量不增值,无终止的执行循环体.
(6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.
while循环
while循环和for循环其实大同小异
格式:
while(条件)
{
循环体;
}
只要给定的条件为真,while 循环语句会重复执行循环体
do_while
一般形式为:
do{
语句
}while(表达式);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。
常用函数
exit() 结束程序 例: exit(0)
exit(0) 正常结束
exit(1) 主动结束
exit(-1) 错误结束
system(); 调用终端命令 例:system("clear")
生成随机数:
srand((unsigned)time(NULL));
设置随机数种子,如果没有,则每次的随机数是一样的。而且在整个程序中,只需要出现一次就可以了
rand()%5 生成0 1 2 3 4中的随机数
rand()%10 + 90 生成90---99之间的随机数
- 嵌入式开发之C语言基础第三天&第四天学习笔记
- 嵌入式开发之Linux基础第三天学习笔记 linux系统命令(二)
- JNI学习之C语言第三天
- 嵌入式开发之c基础第二天学习笔记
- C程序设计 第四版(谭浩强)-学习笔记-第三天
- 嵌入式学习笔记(第四天)c语言续
- JAVA基础18天速成学习笔记之第三天
- 嵌入式开发学习之基础编程语言 C 语言
- 嵌入式开发之linux基础第四天学习笔记 vim编辑器
- 嵌入式开发之c基础第一天笔记
- C语言学习第三天
- 嵌入式学习笔记(第三天)
- java基础第三天、第四天
- Android学习(第三天、第四天)
- JAVA语言基础学习第三天
- c语言学习第三天(指针)
- C语言学习第三天结构体
- C语言学习第三天(练习)
- HDU 2209 - 翻纸牌游戏(贪心)
- MySQL query record
- MySQL变量-binlog_format:决定binlog的存储格式v1
- 1011. World Cup Betting (20)
- 使用gulp为项目中的文件自动添加版本号之实践思路
- 嵌入式开发之C语言基础第三天&第四天学习笔记
- android的dmtracedump工具生成trace文件图片 'dot' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- 1002 Matlab-imimposemin函数
- SSM搭建-Maven创建第一个web项目(22-2)servlet演示
- 在链串中,设计一个算法把最先出现的子串"ab"改为"xyz"
- A--LETTERS
- Linux 文件IO
- 【J2SE】认识变量
- 编程时避免使用 if 语句的五种模式