嵌入式学习第三天

本文介绍了编程中的数据类型后半部分内容,包括字符串常量、标识常量、显示和隐式类型转换、各种运算符(算数、赋值、三目和逗号)、sizeof运算符以及putchar和getchar这两个用于输入输出的函数。
摘要由CSDN通过智能技术生成

昨天由于时间关系,并未学习完数据类型,今天的学习便紧接昨天的末尾。具体内容如下

一、数据类型后半部分

1.字符串常量

字符串常量由一个或多个字符组成,用双引号括起

例如:“a” “Hello world!”

字符串常量的末尾都有一个看不见的“\0”字符用来标识字符串结尾,在计算一串字符串所占内存空间大小时需将其一并计算。

如:字符串常量“a”所占内存空间为2个字节

2.标识常量

#define N 5

在之后的编程中, N 便代表着常量 5 。

“#define”是标识常量的一种,又称宏定义。

在一段程序中,很可能出现某个数值被频繁的使用,那么我们就可以通过某个符号将其表示。

宏定义是一种编译预处理命令,句尾不需要分号;又因为其特性,如果存在语法错误,即使不能起到想要的结果,系统也不会报错。

宏定义的好处是修改数值方便,并且会使代码的可读性提高。

3.显示类型转换(强制类型转换)

通过在数据前添加数据类型前缀,可以在该次数据使用时强制将其转换为前缀类型的数据。

(int)3.14;

(int)2.7;

(double)50;

int Num1;

(double)Num

这种数据转换仅在此次转换中有效,下次再调用这个数据时,还会保持那个数据本身的类型。

4.隐式类型转换

变当几个数据类型不同的数值运算或处理时,系统会自动将数值转换为同一类型,然后再进行运算或处理。

转换过程存在一定的规则:

1.所有浮点运算均以double进行,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。

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

3.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。若两种类型的字节数不同,转换成字节数高的类型;若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型。

4.浮点数和整形数运算时,会将整形数转换为浮点数再运算。

二、运算符

1.算数运算符

+  ,  -  ,  *  ,  /  ,  ++  ,  --  ,  %

这些是基础的运算符。

特别的,%不能对浮点数操作,/ 不能除以0.

在计算时,如果有++ 或--,需要优先计算。

2.赋值运算符

  =  ,  +=  ,  -=  ,  *=  ,  /=  ,  %=

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

        右值:允许放在赋值运算符右边的值
              常量、变量、常量变量组成的表达式

赋值运算时如果赋值号两边量的数据类型不同,赋值号右边量的类型将转换为左边量的类型。

当赋值号右边数据所占空间小,二左边数值所占空间大,赋值前会将右边的数值进行拓展,拓展过程遵循以下原则:有符号数高位补符号位,无符号数高位补0.

当赋值号右边数据所占空间大,左边数值所占空间小,赋值前会直接截取数据低位放入小空间

3.三目运算符(特殊运算符)

a? b : c

运算逻辑是:判断a是否为真,若为真则输出b,否则输出c。

这个三目运算符进行运算时有右结合性,从右往左计算

例:x > y ? x : y > z ? y : z

这里先计算后面y>z?y:z的部分

4.逗号运算符

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


5.sizeof运算符

sizeof (数据类型/变量名) 获得数据类型/变量在内存中所占的字节数
 

三、常用函数前半部分

1.putchar

使用示例:putchar(‘a’);

                或

                char ch = ‘A’;

                putchar(ch);

putchar可以在终端打印一个字符

putchar只能打印字符,同时只能打印一个字符

2.getchar

使用示例:

                char ch;

                ch=getchar();

getchar可以从终端接收一个字符 

getchar会将程序阻塞,直到用户输入数据,程序才能继续向下执行 

与putchar相似,getchar只能接收字符,且只能接收一个字符

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值