嵌入式学习第三天

发布时间:2024年01月19日

复习

学习

1.常量和变量:
? ? 1.字符串常量:
? ? ? ? "ab"
? ? ? ? "hello world"

? ? ? ? 字符串末尾都有一个用来标识字符串结尾的\0字符
? ? ? ??
? ? ? ? 'a'和"a"区别:
? ? ? ? ? ? 'a':字符常量,只有一个字符a
? ? ? ? ? ? "a":字符串常量,有2个字符'a' + '\0'
? ? ? ??
? ? ? ? "ab\0"? ? ? ? ? ? ? ? ?4字符
? ? ? ? "ab\\\123ab" ? ? ? ?7字符

? ? 2.标识常量
? ? ? ? #define N ? 5

? ? ? ? 宏只是代码的替换,中间不进行任何数据计算的操作
? ? ? ? 宏名一般都是大写,用来和变量区分

? ? 3.变量:
? ? ? ? 数据类型 变量名;
? ? ? ? int Num1, Num2, Num3;

? ? ? ? 初始化:
? ? ? ? ? ? 定义变量的时候对变量赋初值

? ? ? ? 赋值:
? ? ? ? ? ? 定义变量后,对变量的赋值

? ? ? ? 初始化 != 赋值

? ? ? ? 注意:
? ? ? ? ? ? 1.未经初始化的变量值为随机值
? ? ? ? ? ? 2.定义变量时最好对变量初始化

2.类型转换:
? ? 1.显示类型转换(强制类型转换)
? ? ? ? 只会转换一次
? ? ? ? (int)3.1415;
? ? ? ? (int)3.78;
? ? ? ? (double)100;
? ? ? ? int Num1;
? ? ? ? (double)Num1;

? ? 2.隐式类型转换
? ? ? ? 表达式:一个多个变量和常量组成的式子
? ? ? ? ? ? 表达式一定有值
? ? ? ? ? ? 表达式一定有类型

? ? ? ? 低精度转换成高精度

? ? ? ? ? ? 浮点型精度 > 整形精度
? ? ? ? ? ? 同种类型所占内存空间越大精度范围越高
? ? ? ? ? ? 无符号精度 > 有符号精度

? ? ? ? ? ? float类型进行数据运算和数据处理时会转换为double类型
? ? ? ? ? ? short、char类型进行数据运算和数据处理时会转换为int类型

? ? ? ? ? ? char + char == int?
? ? ? ? ? ? char + short == int?
? ? ? ? ? ? float + float == double?
? ? ? ? ? ? float + double == double?
? ? ? ? ? ? float + int == double

3.运算符:
? ? 1.算数运算符:
? ? ? ? +
? ? ? ? -
? ? ? ? *
? ? ? ? / : 不能除以0?
? ? ? ? % : 不能对浮点数操作
? ? ? ? ++ ? 自增运算符
? ? ? ? -- ? 自减运算符

? ? ? ? 练习:
? ? ? ? 定义两个变量可以是整形或者浮点数类型,对这两个变量赋值,
? ? ? ? 并计算这两个数四则运算的结果并打印在终端

? ? ? ? i++; ? ?先用再加
? ? ? ? ++i; ? ?先加再用
? ? ? ? i--;
? ? ? ? --i;

? ? 2.赋值运算符:
? ? ? ? =
? ? ? ? +=
? ? ? ? -=
? ? ? ? *=
? ? ? ? /=
? ? ? ? %=

? ? ? ? 左值:允许放在赋值运算符左边的值
? ? ? ? ? ? ? 变量 ?
? ? ? ? ? ? ? 常量、表达式均不能作为左值

? ? ? ? 右值:允许放在赋值运算符右边的值
? ? ? ? ? ? ? 常量、变量、常量变量组成的表达式
? ? ? ??
? ? ? ? 左值为浮点数类型,右值为整形,会将值扩展精度
? ? ? ? 左值为整数类型,右值为浮点数类型,会舍弃精度

? ? ? ? 左右两边均为整形:将右值直接拷贝到左值空间中
? ? ? ??
? ? ? ? 小数据放入大空间:数据扩展,有符号数高位补符号位,无符号高位补0?


? ? ? ? 大数据放入小空间:直接截取数据低位放入小空间

? ? char ch = 300;
? ? printf("ch = %d\n", ch); ? ?//44

? ? char ch = 130;
? ? printf("ch = %d\n", ch); ? ?//-126

? ? 3.三目运算符(特殊运算符)
? ? ? 表达式 ? 表达式1 : 表达式2?

? ? ? 练习:定义三个变量,并对变量赋值,
? ? ? ? ? ? 通过三目运算符获得3个数中的最大值并打印

? ? ? 结合方向:自右至左
? ? ? x > y ? x : (y > z ? y : z)

? ? 4.逗号运算符
? ? ? ? 从左到右依次执行表达式,并将最后一个逗号表达式的结果作为整体逗号表达式的结果

? ? 5.sizeof运算符
? ? ? ? sizeof (数据类型/变量名) 获得数据类型/变量在内存中所占的字节数

=========================================================================
1.C语言中常用的输入输出函数:
? ? 1.getchar putchar?
? ? 2.scanf printf?
? ? 3.gets puts?

1.putchar?
? ? 功能:在终端打印一个字符?

? ? 示例:?
? ? ? ? putchar('a');
? ? ? ??
? ? ? ? char ch = 'A';
? ? ? ? putchar(ch);

? ? ? ? putchar(ch + 32);
? ? 注意:
? ? ? ? 1.putchar只能打印一个字符,想打印多个字符需要多次调用putchar?
? ? ? ? 2.putchar只能打印字符?

? ? 练习:
? ? ? ? 利用putchar在屏幕上打印 Hello World!

2.getchar?
? ? 功能: 从终端接收一个字符?

? ? 示例:

? ? ? ? ? ? putchar('a');
? ? ? ? ? ? char ch = 'A';
? ? ? ? ? ? putchar(ch);

? ? 注意:
? ? ? ? 1.getchar会将程序阻塞,直到用户输入数据,程序才能继续向下执行?
? ? ? ? 2.getchar只能接收一个字符,想要接收多个字符需要多次调用
? ? ? ? 3.getchar只能接收字符

作业:
? ? 1.定义一个圆的半径,并赋初值,计算圆的周长和面积完成打印
? ??
? ? 2.利用putchar和getchar实现从终端接收一个小写字母,转换成其对应的大写形式输出

? ? 3.定义两个整形变量并对变量赋初值(初值为2位数),要求将两个数合并成一个新数并打印
? ? ? ? 新数的千位是第二个数的十位
? ? ? ? 新数的百位是第一个数的十位
? ? ? ? 新数的十位是第一个数的个位
? ? ? ? 新数的个位是第二个数的个位

? ? ? ? 注意:利用四则运算对数字拆分和拼接
? ? ? ? Num1: 12
? ? ? ? Num2: 34
? ? ? ? NewNum: 3124

文章来源:https://blog.csdn.net/m0_75240018/article/details/135657365
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。