2021-09-03 C语言学习第三天 (运算符、表达式和语句)

运算符、表达式和语句

本文主要学习以下内容:

  • 关键字:while、typedef
  • 运算符:= 、- 、 、/ 、% 、++ 、-- 、(类型名)*
  • C语言的各种运算符
  • 运算符优先级以及语句、表达式含义
  • while循环
  • 复合语句、自动类型转换和强制类型转换
  • 如何编写带有参数的函数

基本运算符

  • 赋值运算符:=
    在C语言中,=并不意味着相等,而是一个赋值运算符。赋值表达式语句为:
bmw = 2002;

意味着把值2002赋给变量bmw,=号左边是一个变量名,右边则是赋给该变量的值。赋值行为是从右往左进行的。可以这样写:

i = i + 1;

意味着先找出变量 i 的值,把该值加1,然后把新值赋值变量i
在编写代码时要注意,=号的左侧必须是一个变量名,实际上,=号的左侧必须引用一个存储位置,最简单的方法就是使用变量名,也可以使用指针。概括的说,=号的左边必须是一个可以修改的左值。

  • 四则运算符:+ 、- 、* 、/ 、
    四则运算符和数学中的表达一样,要注意除法运算符(/)计算时得到的结果会舍弃掉小数部分,这一过程被称为截断。也叫趋零截断,会向零靠拢,所以如果结果是-3.8,会转换成-3。
  • 运算符优先级
    C语言规定,每个运算符都有自己的优先级,和普通的算术运算符一样,乘法运算符和除法运算符的优先级比加法和减法高,如果是同级别的运算符,按从左到右的顺序执行。

其他运算符

  • 求模运算符:%
    求模运算符用于整数运算,得到的结果是左侧整数除以右侧整数的余数。
    根据趋零截断,可以归纳出负数的求模运算。如果第一个运算对象是正数,那么求模的结果也是正数;如果第一个运算对象是负数,那么求模的结果也是负数。
    11 / 5 的2,11% -2 得1
    11/ -5 得-2,11% -2 得1
    -11 / -5 得2,-11%-5 得-1
    -11 /5得-2,-11%5 得-1
  • 递增/递减运算符:++/–
    递增/递减运算符有两种方式出现,第一种,++/–出现在其作用得变量前面,这是前缀模式,第二种,++/–出现在其作用得变量后面,这是后缀模式。
a_post = a ++; //后缀:使用a的值之后,递增a
b_pre = ++b; //前缀:使用b的值之前,递增b

表达式和语句

  • 表达式:
    表达式由运算符和运算对象组成,最简单的表达式是一个单独的运算对象,以此为基础可以建立复杂的表达式。
    -4
    4+21
    a*(b+c/d)/20
    q=5*2
    x=++q %3
    q>3
  • 语句:
    C把末尾加上一个分号的表达式都看作语句。
  • 复合语句:
    复合语句是用花括号括起来的一条或多条语句,复合语句也称为块。

类型转换

通常,在语句和表达式中应使用类型相同的变量和常量。但是,如果使用混合类型,C不会像其他语言那样死掉,而是采用一套规则进行自动类型转换。虽然这很便利,但是有一定危险性。

  • 当类型转换出现在表达式时,无论是unsigned 还是signed 的char和short都会被自动转换成int,如有必要会被转换成unsigned int,这些转换类型被称为升级。

  • 涉及两种类型的运算,两个值会分别转换陈两种类型的最高级别。

  • 类型的级别从高至低是long double 、double 、 float 、unsignedlong long 、long long 、 unsigned int 、 int。例外的情况时,当long 和 int的大小相同时,unsigned int比long级别高。之所以short和char类型没有列出,是因为它们已经被升级到int 或unsigned int。

  • 在赋值表示式语句中,计算的最终结果会被转成被赋值变量的类型。这个过程可能导致类型升级或降级。所谓降级,是指把一种类型转换成更低级别的类型。

  • 当作为函数参数传递时,char和short被转换成int,float被转换成double。

  • 强制类型转换:
    通常,应该避免自动类型转换。然而,有时我们需要进行精确的类型转换,或者在程序中表明类型转换的意图。这种情况要用到强制类型转换,即在某个量的前面放置用圆括号 括起来的类型名,该类型名即时希望转换成的目标类型。圆括号和它括起来的类型名构成了强制类型转换运算符,其通用形式是:

mice = 1.6 + 1.7;
mice = (int)1.6 + (int)1.7;

第一行使用自动类型转换;
第二行使用强制类型转换。

带参数的函数

程序的函数一般为:

void pound(int n):{
}

其中,void pound(int n)为函数头,该函数接受一个int类型的参数,所以圆括号中包含一个int类型变量n的声明。
声明参数就创建了被称为形式参数的变量。上面的函数中,int类型的变量n就是形式参数,简称形参。如果我们像pound(10)这样调用函数,那么,10就是实际参数,简称实参。
注意:这里是10的值被拷贝给变量n,同时,变量名是函数私有的,即在函数中定义的变量不会和别处的相同名称的变量发生冲突。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值