嵌入式学习(第二周)

1类型转换

        当同一个表达式出现不同的类型的字符或者数字时,小类型会自动向大类型进行转换。这样做的目的是为了防止丢失精度。

        所有的转换都是临时的,只有在当前表达式内进行转换,操作数本身的类型不会改变。

1.1隐式转换

        char < short < int < long < float < double < long double 

        举例:a = 9 + 1.0;  9是int 类型,1.0是float类型,为了不丢失精度,9会自动转换为float类型,变为9.0,a的结果是10.0。

1.2强制转换

        将大类型数据转换为小类型数据。

        举例:a = 9 + (int)1.0; 将float数据强制转换为int类型。不建议使用,可能会导致数据溢出或者丢失精度。

2运算符

2.1运算符优先级排序

        算术运算符 >  逻辑运算符 > 赋值运算符

 2.2位运算符

        "~":取反,将数字存储的0 1全部对调,例:char 5 = 0000 0101,取反:1111 1010。

        "&":按位与,两个都为1才为1.

        "|":按位或,两个都为0才为0.

        "^":按位异或,不同为1,相同为0.

        运算符优先运算优先级高的再运算优先级低的,同一优先级按从左到右运算。

3控制流

3.1if/else if

        if/else if语句具有排他性,如果输入符合多个表达式语句,优先执行第一个满足的表达式。

        如果if语句中有很多条语句需要加上"{ }",如果只有一条语句则可以选择省略不加。

3.2switch() {case ... } 语句

        switch语句后面的()内只能识别整型,不能使用浮点数。

        case是符合switch之后的判断分支,每一个case语句都要加上break;否则程序在执行完符合的case语句之后,还会将后面不符合的case也执行一遍。

        default:如果不满足前面列出的case则执行该语句,此语句一般放在最后,break可以选择不加。

3.3while()和do{ }while()语句

        3.3.1while()

        ()内是判断表达式,符合则进入while循环,不符合则跳出while循环。

        ()内不要填固定数字,否则会造成死循环。

        3.3.2do{ }while()

        作用和while()语句大致相似,不过判断条件放在了循环最后,while()后要加上";",和while语句不同的是,do whlie语句最少执行一次。

3.4for循环

        for(表达式1;表达式2;表达式3)。

        表达式1一般是定义,例如:int a =1;a = 1;、在for循环中只执行一次。

        表达式2一般是判断式,例如: a < 10;

        表达式3一般是表达式1中定义的变量加减,例如:a++;a+1;a+2,表达式3一般是for循环最后进行运算。

3.5goto语句

        goto语句会跳转到定义的标签处,但是标签不能放在goto前面,否则会造成死循环。

4数组初阶

        int a = 10;是给变量a赋予int类型的内存,并将10储存在变量a的内存·之中,方便使用。

        int a ; 将一块int内存起名为a。

        int a[5];给变量a分配五个int类型的内存,a是5个内存的基地址,也是a[0]的地址。

4.1基本概念

        由相同类型的多个元素所组成的一种复合数据类型。

        在工程中同时定义多个相同类型的变量时,重复定义,可以使用数组

4.2变长数组。

        int a[size]:"[]"内是字符而不是数字的数组被称为变长数组,size需要提前初始化赋值。

        int a[size] = {1,2,3,4,5}是错误的,因为数组初始化的时候系统不认识size变量,只能在定义变长数组之后,使用a[0] = 1;a[1] = 2;这种方法来定义。

4.3计算数组

        4.3.1计算数组大小

        sizeof(a):输出a数组所占用内存大小

        4.3.2计算元素个数

        sizeof(a) / sizeof(a[0]):用a数组的总内存除以a数组一个数字所占用的内存,得到a数组中的元素个数。

        每个数组都会需要有一个空间存放'\0';是系统默认的终止符,所以数组a[]所分配的空间要比需要保存的元素个数多1位。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值