达内嵌入式课程
day5:分支语句、for循环、break和continue
STDC01_day05_01-运算符11.ts
如果一个表达式里多个数字的类型不同就必须首先转换成同一个类型然后才能计算
这个转换过程叫隐式类型转换,由计算机完成
隐式类型转换中一定把占地小的类型转换成占地大的类型
/CSD1702/biaoc/day05 01type.c
/*
类型转换演示
*/
#include <stdio.h>
int main(){
printf("sizeof(1 ? 1 : 0.9)是%d\n",sizeof(1 ? 1 : 0.9));
return 0;
}
结果:
sizeof(1 ? 1 : 0.9)是8
如果不同类型的大小一样就把整数类型转换成浮点类型,把有符号类型转换成无符号类型
/CSD1702/biaoc/day05 01type.c
/*
类型转换演示
*/
#include <stdio.h>
int main(){
printf("sizeof(1 ? 1 : 0.9)是%d\n",sizeof(1 ? 1 : 0.9));
printf("-7 + 3 > 0是%d\n", -7 + 3 > 0);
printf("-7 + 3u > 0是%d\n", -7 + 3u > 0); //隐式类型转换为无符号类型 将-7转换成无符号类型 保存在计算机内的二进制数不变
return 0;
}
结果:
sizeof(1 ? 1 : 0.9)是8
-7 + 3 > 0是0
-7 + 3u > 0是1
-7转换成无符号类型时是一个非常大的数字,如果用%d
作为占位符显示-7+3u为-4,用%u
作为占位符就是一个非常大的数字,我们能看到什么内容取决我们用的占位符
C语言里可以随时给一个数字指定一个类型,这叫做强制类型转换
强制类型转换的格式如下
(char)300
强制类型转换有可能造成数据丢失
/CSD1702/biaoc/day05 01type.c
/*
类型转换演示
*/
#include <stdio.h>
int main(){
printf("sizeof(1 ? 1 : 0.9)是%d\n",sizeof(1 ? 1 : 0.9));
printf("-7 + 3 > 0是%d\n", -7 + 3 > 0);
printf("-7 + 3 > 0是%d\n", -7 + 3u > 0);
printf("%d %d\n",300,(char)300);
return 0;
}
结果:
sizeof(1 ? 1 : 0.9)是8
-7 + 3 > 0是0
-7 + 3 > 0是1
300 44
类型转换不会修改现有存储区的内容,计算机会分配一个新的存储区记录转换后的数字
STDC01_day05_02-分支语句01.ts
分支结构可以从几组语句选择一组执行而忽略其他组
如果程序中遇到多种可能性,每种可能性需要专门的语句处理就可以使用分支语句
if
关键字可以用来编写分支
if
分支里需要为每种可能性编写对应的处理语句
if
分支里需要为每组语句编写配对的逻辑表达式,当某个逻辑表达式为真的时候就执行它配对的语句
if(){
}
else if(){
}
else if(){
}
有可能同时执行的语句不可以包含在一个分支里
编写if分支之前必须首先确定有多少个可能性
/CSD1702/biaoc/day05 02if.c
/*
if分支演示
*/
#include <stdio.h>
int main(){
int num = 0;
printf("请输入一个数字:");
scanf("%d",&num);
if (num >= 0){
printf("非负数\n");
}
else if(num < 0){
printf("负数\n");
}
return 0;
}
结果:
请输入一个数字:4
非负数
请输入一个数字:-6
负数
/CSD1702/biaoc/day05 02if.c
/*
if分支演示
*/
#include <stdio.h>
int main(){
int num = 0;
printf("请输入一个数字:");
scanf("%d",&num);
/*if (num >= 0){
printf("非负数\n");
}
else if(num < 0){
printf("负数\n");
}*/
if (num > 0){
printf("正数\n");
}
else if (num < 0){
printf("负数\n");
}
else if (!num){
printf("零\n");
}
return 0;
}
结果:
请输入一个数字:6
正数
请输入一个数字:-3
负数
请输入一个数字:0
零
STDC01_day05_03-分支语句02.ts
/CSD1702/biaoc/day05 02if.c
/*
if分支演示
*/
#include <stdio.h>
int main(){
int num = 0;
printf("请输入一个数字:");
scanf("%d",&num)