嵌入式课程笔记_01_STDC01_day5:分支语句、for循环、break和continue

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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值