运算符、表达式和语句

一、基本运算符

C用运算符表示算数原酸。

1、赋值运算符:=

符号 “=” 被称为赋值运算符
i = 100; 读作“把值100赋给变量i”。
左值 = 右值;
可修改的左值(对象定位值)必须是是变量名,用于标识特定数据对象的名称或者表达式,右值指的是能赋值给可修改左值的量,且本省不是左值。

赋值表达式语句的目的是把值储存袋内存位置上。用于储存值的数据储存区域统称为数据对象。

2、加法运算符:+

加法运算符用于加法运算,是其俩侧的值相加。

3、减法运算符:-

减法运算符用于减法运算,时期左侧的数减去右侧的数。

4、符号运算符:-和+

用于表明或者改变一个值的代付符号。

num = +100;
next = -100;
5、乘法运算符:*
6、除法运算符:/

/ 左侧的值是被除数,右侧的值是除数。
浮点数的除法是浮点数,整数除法的结果是整数。整数是没有小数部分的数,例如3/5,实际结果又小数,在C语言中,整数除法结果的小数部分会被丢弃,这一过程成为 截断

#include<stdio.h>

int main()
{
    double f = 0;
    f = 5 / 3;
    printf("5/3 = %d\n", 5 / 3);
    printf("5/3 = %2.5f\n", f);
    printf("5.0/3.0 = %f\n", 5.0 / 3.0);
    return 0;
} 

在这里插入图片描述

7、运算符优先级

乘法和除法优先级大于加法和减法。如果同级,按从左到右的顺序执行。不包含 = 。
运算符优先级(从低到高)

运算符结合律
()从左往右
+ - (一元)从右往左
* /从左往右
+ - (二元)从左往右
=从右往左
2、其他运算符
1、sizeof运算符和size_t类型

sizeof运算符以字节为单位返回运算对象的大小。1字节通常是8位。sizeof返回的类型是size_t,是一个无符号类型

#include<stdio.h>

int main()
{
    int n = 0;
    size_t intsize;
    intsize = sizeof(int);
    printf("n=%d,n 是 %zd byte; int 的字节是 %zd byte。\n", n, sizeof(n), intsize);

    return 0;
}

在这里插入图片描述
如果编译器不支持%zd,可以使用%u或%lu代替%zd。

2、求模运算符:%

求模运算符用于整数运算。求模预算符给出其左侧整数初一右侧整数的余数。13%3读作13求模5。求模运算符只能用于整数,不能用于浮点数。

3、递增运算符:++

递增运算符将其运算对象递增1.++出现在其作用的变量前面,这是前缀模式,先加1在使用值;++出现在其作用的变量后面,这是后缀模式,先使用值再加1.

#include<stdio.h>

int main()
{
    int n = 0;
    int m = 0;
    while (n < 10)
    {
        printf("前缀模式(++n)[n][%d]\n",++n);
        printf("后缀模式(m++)[m][%d]\n",m++);
        printf("****************\n");
    }

    return 0;
}

在这里插入图片描述

4、递减运算符:- -

和++使用方法相同

三、表达式和语句
1、表达式

表达式是有运算符和运算对象组成。
int num; 不是表达式。

2、语句

语句时C程序的基本构建块。一条语句相当于一条完成的计算机指令。
声明不是语句。

3、副作用和列点

副作用是对数据对象或文件的修改。
序列点是程序执行的点,在该点上,所有的副作用都在进入下一步之前发生。语句的分号标记了一个序列点。
完整表达式指这个表达式不是另一个更大表达式的子表达式。

4、复合语句(块)

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

四、类型转换
1、类型转换规则

1、当类型转换出现在表达式是,无论unsigned还signed的 char和short都会被自动转换成int。都是从较小类型转换为较大类型,成为升级。
2、设计俩种类型的运算,俩个值分别会被转换成俩种类型的更高类型。
3、类型级别从高到低依次是long double、double、float、unsigned long long int、long long、unsigned long、long、unsigned int、int。当long和int的大小相同时,unsigned int的级别必比long高。
4、在赋值表达式语句中,计算的最终结果会被转换成被赋值变量的类型。这个过程可能导致类型升级或降级。所谓降级,是指把一种类型转换成更低级别的类型。
5、当作为参数传递时,char和short被转换成int,float被转换成double。

2、强制类型转换

强制类型转换就是在某个量的前面防止用圆括号括起来的类型名,该类型名是希望转换成的目标类型。圆括号和他阔起来的类型名构成了强制类型转换运算符。

int i = (int)1.2;
五、带参数的函数

声明参数就创建了被称为形式参数,我们陈函数调用传递的值为实际参数。比如 int date(int n),n是形参,调用 int d = date(1),1是实参。
原型指函数的声明,描述了函数的返回值和参数化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值