嵌入式学习——C语言基础——day3

本文详细解析了编程中的数据类型转换(显式和隐式)、不同类型的运算符使用规则,包括算数、赋值、逗号和sizeof,以及输入输出函数如putchar、getchar和printf的功能和用法。
摘要由CSDN通过智能技术生成

1. 数据类型转换

1.1 显式类型转换(强制类型转换)

        注意:

            (int)5.2
            舍弃精度变成5
            (double)5
            扩展精度变成5.0 

1.2 隐式类型转换:不同类型进行数据运算和数据处理时会发生隐式类型转换

        1. 示意图

        double    <-    float                                高精度

        unsigned 

        long

        int          <-      char  short                     低精度

        2. 规则(低精度转成高精度)

                1. 同类型:所占空间越大,精度范围越高

                2. 无符号精度范围高于有符号类型

                3.  浮点数精度范围高于整数类型精度范围

2. 表达式

        由运算符连接的一个或多个常量和变量组成的式子,表达式有值也有类型

3. 运算符

3.1 算数运算符

        +

        -

        *

        / 

        %        取余(不能对浮点数取余)

        ++       

                i++        先用后加(一个表达式中,先用i,表达式结束再给i+1)

                ++i        先加后用                       

        --

3.2 赋值运算符   =

        1.  左值

                允许放在  =  左边的值,只能是变量

        2. 右值

                允许放在  =  右边的值, 可以是常量、变量或者表达式

        3. 大、小数据的赋值存放规则

                1. 大数据存入小空间

                        高位截断,截取数据低位存入小空间(可能正数变成负数,也可能负数变成正数)

                2. 小数据存入大空间

                        存入大空间数据低位,有符号数在高位补符号位(0/1),无符号在高数据位补0

        4. 左右值类型不同的数据存储方法(将右值数据类型变换为左值数据类型)

                1. 左值为浮点数类型,右值为整数类型:

                        将整数类型转换为浮点数类型赋值

                2. 左值为整数类型,右值为浮点数类型

                        会将浮点数类型舍弃精度赋值给整数类型

                3. 如果左值和右值空间大小一样,会将右值直接拷贝到左值空间中

3.3 逗号运算符

        从左到右依次计算,将最后一个表达式的结果最为整体的结果

        c = (a + 1, b + 2, a++, b++, a + 2, b + 3);

3.4 sizeof运算符

        获取某种数据类型或者变量在内存中所占的字节数

        sizeof(int);

        int val = 0;

        sizeof(val);

4. 输入输出函数

4.1 putchar(输出单个字符)

        putchar('a');  

        int ch = 'a';   putchar(ch);

        putchar(97);

4.2 getchar (接收单个字符)

        char ch = 0;

        ch = getchar();

4.3 printf 

        1. 打印非输出控制符

                printf("hello world");

                转义字符合集

                \"        "

                \\        \

                \n        换行

                \t        横向制表符(tab键)                

                \v        纵向制表符(tab键)

                \b        退格符(覆盖前一个字符)

                \r        回车     

        2. 打印输出控制符        

                %d        有符号十进制

                %ld        有符号十进制(long int)

                %u        无符号十进制

                %o        无符号八进制

                %x        无符号十六进制(小写)

                %X        无符号十六进制(大写)

                %#o        无符号八进制(带0)

                %#x        无符号十六进制(小写带0x)

                %e        按照指数形式打印浮点数类型

                %E        按照指数形式打印浮点数类型 

                %s        按字符串打印

                %c        打印单个字符

                %f        按float型打印

                %lf        按double型打印

                %p        按指针打印

                %%(等价于\%)        打印%

                注意:

                        1. %nd        终端显示域宽为n,右对齐,前面为空格

                        2. %-nd       终端显示域宽为n,左对齐,后面为空格

                        3. %0nd      终端显示域宽为n,右对齐,前面补0

                        4. %.nf        浮点数保留小数点后n位有效数字 

        3. 打印多个输出控制符

                注意:输出控制符的个数与表达式的个数要一一匹配

                

        

        

        

        

        

        

        

        

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值