C语言学习日记三

C语言学习日记三

运算符、表达式和语句

一、基本运算符

  • =、+、-、*和/,但是没有指数运算符。但是C标准库提供了pow() 函数用于指数运算,例如 sum = pow(2,3);其中sum值为8
1. 赋值运算符:=
  • =是赋值运算符,==才是“相等运算符”,!=是“不相等运算符”;
  • 变量 = 值(可以是变量,也可以是常量);
  • 赋值表达式语句的目的是把值存储到内存位置上。用于存储值的数据存储区域统称为数据对象
  • 左值是C语言的术语,用于标识特定的数据对象的名称或表达式。对象指的是实际的数据存储,而左值是用于标识或定位存储位置的标签。
  • 右值是指能赋值给可修改左值的量,且本身不是左值。例如:sum = 20;sum是可修改的左值,20是右值。
  • C语言可以三重赋值,例如:sum = total = gross =20;顺序是从右到左。
2.加法运算符:+
  • 加法运算符用于加法运算,使两侧的值相加。如:sum = 10 + 10;
  • 相加的值可以是变量也可以是常量。
3.减法运算符:-
  • 减法运算符用于减法运算,使其左侧的数减去右侧的数。例如:sum = 20 - 10;
  • +和-运算符都是二元(需要两个运算对象)运算符。
4.符号运算符:-和+
  • 减号可以用于标明或改变一个值的代数符号。例如:sum = - 10;此时-为一元运算符
  • 一元+运算符不会改变对象的值或符号。例如:sum = 20;
5.乘法运算符:*
  • 两元运算符,例如:sum = 10 * 10;
6.除法运算符:/
  • 两元运算符,左侧的是被除数,右侧的是除数。例如:sum = 10 / 10;
  • 在C语言中,整数的除法结果的小数部分将会被丢弃,这一过程称之为截断
7.运算符优先级
运算符结合律
()从左往右
+ -(从右往左)从右往左
* /从左往右
+ -(二元)从左往右
=从右往左

圆括号的优先级最高,

二、其他运算符

1.求模运算符:%
  • 只能用于整数,不能用于浮点数。求模运算符给出其左侧整数除以右侧整数的余数,即是求余数。例如13%5=3;
2.递增运算符:++ 和递减运算符:- -
  • 递增运算符使其运算对象递增1。有两种方式,第一种,++出现在其作用的变量前面,为前缀模式,表示在使用该变量之前先递增1,;第二种,++出现在其作用的变量后面,为后缀模式,表示在使用该变量之后递增1。
  • 递增运算符使其运算对象递减1。有两种方式,第一种,- -出现在其作用的变量前面,为前缀模式,表示在使用该变量之前先递减1,;第二种,- -出现在其作用的变量后面,为后缀模式,表示在使用该变量之后递减1。
  • 主要是简写类似于i = i + 1为++1或i++。
  • ++和- -运算的运算优先很高,只有圆括号的优先级比它们高。
  • 谨慎使用

三.表达式和语句

表达式

  • 表达式:由运算符和运算对象组成。
  • C语言的每一个表达式都有一个确切的值。

语句

  • C程序的基本构成块。
  • 一条语句相当于一条完整的计算机指令,大部分都以分号结尾。
  • 语句(有用的)可以改变值或调用函数。
  • 不是所有的指令都是语句。例如:x = 6 + (y = 5);y=5是一条完整的指令,但不是一条语句。

复合语句

  • 用花括号括起来的一条或多条语句,复合语句也称为块。

四、类型转换

  • 当表达式和语句中出现了不同类型的变量和常量。C语言就会将它们进行转换。一般都是由较小类型转换为较大类型,这个过程被称为升级。
  • 类型的级别由高到低是 long double、double、float、unsigned long long、long long、unsigned long long、unsigned int、int、short 、char。
  • 赋值表达式中,计算的最后结果会转换为被赋值变量的类型,在这过程可能导致类型升级或类型降级。
  • 作为参数传递时,char 和 short 被转换成 int,float 被转换成double。
  • 类型升级不会有问题,但是类型降级就可能会出现问题。

强制类型转换运算符

  • 圆括号和它括起来的类型名构成了强制类型转换运算符,通用形式为:(type)。例如:mice = (int)1.6 + (int)1.7;

五、带参数的函数

1.如果函数不接受任何参数,则函数头的圆括号中应该写上关键字void,同样的如果函数没有返回值,应该在函数头名前加上void;例如 void pound(void)。有返回值和接受参数,例如:int main(int n)
2.声明参数就是创建了被称为形式参数的变量,上例n是形式参数(形参),int main(10),10就是实际参数(实参)。
3.变量名是函数私有的,即在函数中定义的函数名不会和别处的相同名称发生冲突。
4.原型是函数的声明。

六、一些补充

  • typedef double real;//定义了deal为double的别名。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值