再学C语言14:基本运算符

news/2024/12/4 17:23:12/

C使用运算符(operator)代表算数运算

一、赋值运算符(assignment operator):=

在C中,符号=并不表示“相等”,而是一个赋值运算符

year = 2022;

符号=左边是一个变量名,右边是赋给该变量的值

赋值运算符的动作顺序是从右到左

数据对象(data object):泛指数据存储区,例如用于保存变量或数组的数据存储区是一个数据对象

左值(lvalue):用于标识一个特定的数据对象的名字或表达式,例如变量的名字是一个左值

数据对象指的是实际的数据存储,左值是用于识别或定位该存储的标识符

可修改的左值:并不是所有的对象都是可更改值的

右值(rvalue):能赋给可修改的左值的量,右值可以是常量、变量或者任何可以产生一个值的表达式

操作数(operand):运算符操作的对象,例如=运算符的左操作数和右操作数

二、加法运算符(addition operator):+

功能:使其两侧的值相加

被加的值(操作数)可以是变量或常量

三、减法运算符(subtraction operator):-

功能:从其前面的数中减去其后面的数

+、-运算符被称为二元(binary)或双值(dyadic)运算符,需要两个操作数

四、符号运算符:- 和+

负号:-

正号:+

- 和+作为负号运算符时是一元运算符(unary operator),只需要一个操作数

五、乘法运算符:*

乘法的符号:*

C没有计算平方的函数,可以用乘法实现

示例代码:

/* test of multiplication */
#include <stdio.h>
int main(void)
{int length;printf("Enter a square side length. \n");scanf("%d", &length);printf("The square area is %d. \n", length * length);return 0;
}

运行结果: 

cf58e60e798f49d19c80fdae95b0d989.png

六、除法运算符:/

功能:符号左边的值被其右边的值除

整型数的除法产生一个整数结果;浮点数的除法产生一个浮点数结果

截尾(truncation):整数除法结果的小数部分均被丢弃

示例程序:

/* test of division */
#include <stdio.h>
int main(void)
{printf("interger division: 9/2 is %d. \n", 9/2);printf("floating division: 9/2 is %f. \n", 9.0/2);return 0;
}

运行结果:

9dde5df2843141fbbddad13a704cf50c.png

计算结果中,并没有把整数除法的结果四舍五入,而是进行了截尾,即舍弃小数部分

整数与浮点数进行混合运算时,计算结果是浮点数;实际上,计算机不能真正用整数去除浮点数,而是通过编译器将整数转换为浮点数

在C99标准中,负整数的除法使用“趋零截尾”原则,例如将-4.5转换为-4

示例代码:

/* test of division */
#include <stdio.h>
int main(void)
{printf("interger division: 9/2 is %d. \n", -9/2);printf("floating division: 9/2 is %f. \n", -9.0/2);return 0;
}

运行结果:

2a565f48550a44fab4f37d09dca05d59.png

七、运算符的优先级

C通过建立一个运算符的优先顺序以满足在一个语句中进行多种运算的需要

高优先级的运算符先于低优先级的运算符执行

如果两个运算符有相同的优先级,根据其在语句里出现的顺序执行

按优先级递减顺序排列的运算符
运算符结合性
()从左到右
+ -(一元运算符)从右到左
* /从左到右
+ -(二元运算符)从左到右
=从右到左

 


http://www.ppmy.cn/news/6668.html

相关文章

K. The Robot(思维 + 看数据范围)

Problem - 1468K - Codeforces 有一个机器人在一个格子场上&#xff0c;这个格子场在各个方向都是无尽的。最初&#xff0c;机器人位于坐标为(0,0)的单元中。他将执行由一串大写拉丁字母 "L"、"R"、"D"、"U "描述的命令。当一个命令被…

device_create() 创建设备节点,device_del()删除设备节点

0 背景 最近在尝试开发linux设备驱动&#xff0c;虽然可以在命令行下通过mknod命令手动创建设备节点&#xff0c;但是这种操作不符合标准驱动的开发过程&#xff0c;并且linux内核提供了一组函数函数device_create() 和device_del()可以在加载驱动时候自动在/dev目录下创建相应…

十、Express 路由

路由是Express框架中最重要的功能之一&#xff0c;在Express中&#xff0c;路由指的是客户端的请求与服务器处理函数之间的映射关系&#xff0c;Express中的路由分别由请求的类型&#xff08;GET/POST等&#xff09;、请求的URL地址和处理函数三个部分组成的&#xff1b; APP级…

QT入门-UI-信号槽

目录 一、QWidget类&#xff08;重点&#xff09; 二、子组件&#xff08;掌握&#xff09; 三、样式表&#xff08;熟悉&#xff09; 一、什么是信号槽&#xff1f; 二、信号槽的连接方式 2.1 自带信号→自带槽 2.2 自带信号→自定义槽 2.3 自定义信号 三、传参方式 3.1 成员变…

IT咨询——怎样保障企业的数字化转型

数字化转型不是个新命题了&#xff0c;很多企业都在搞&#xff0c;有成功的也有失败的&#xff0c;数字化转型走到今天&#xff0c;业界已经形成一些共识&#xff0c;比如&#xff1a; 1、数字化转型是一把手工程&#xff0c;是决策层最重要的工作之一&#xff0c;需要作为企业…

筛法(线性筛,厄拉多塞筛)

在前前前前前前…的博客中,我们主要谈了欧拉筛和埃氏筛. 今天我们主要来聊一聊线性筛和厄拉多塞筛(其实和埃氏筛和欧拉筛本质上没区别哎).其实在这两种筛法中厄拉多塞筛最好懂(就连本蒟蒻一看代码就明白了…别看这个名字,容易糊弄人) 首先是厄拉多塞筛"粉墨登场"::…

一次性记录关键字,注释,字符串值,运算符,括号配对的位置,并设置自定义数据颜色。

未执行函数之前&#xff1a; 执行后参数未加数据&#xff1a; 执行后参数加上数据&#xff1a; 源代码&#xff1a; /// <summary> /// 一次性记录关键字&#xff0c;注释&#xff0c;字符串值&#xff0c;运算符&#xff0c;括号配对的位置,并设置自定义数据颜色 /// &l…

Nacos注册中心

【Spring Cloud Alibaba】 1. Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件&#xff0c;方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud …