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

news2024/10/6 19:25:57

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.coloradmin.cn/o/114771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

arraybuffer的应用,下载图片/文件等

在这篇文章中&#xff0c;我们了解了js中arraybuffer是用来存储二进制缓存的&#xff0c;但是都是理论知识&#xff0c;本篇文章来介绍一个arraybuffer应用的场景。 主要应用场景是下载文件&#xff0c;在ajax请求中&#xff0c;设置responseType arraybuffer 得到一个二进制…

零刻 SEi12 Pro,ALL IN ONE搭建教程

一台mini的NUC能做什么&#xff1f;当然每个人的心里都会有着不同的答案&#xff0c;既然是一台Mini主机那就肯定少不了部署一个All-In-One来榨干他的性能。今天我就大家带来一个部署All-In-One的详细教程&#xff0c;希望能够对大家有帮助。 我这台机器配置是i5-1240P 16G内存…

【mpvue】mpvue-echarts echarts动态渲染、延迟加载、双轴动态计算、双轴对齐

mpvue-echarts 双轴折线案例使用echarts双轴折线图实战项目导入一、打包结果超过小程序大小限制&#xff1f;1.下载自定义echarts.js2. 引入 echarts.js![在这里插入图片描述](https://img-blog.csdnimg.cn/ff4ad6d894404e97bceff0581fc1f736.png#pic_center)3. 项目引入二、图…

蓝桥杯备赛Day4——多维数组

二维数组初始化 p[[0 for i in range(5)] for j in range(2)] #法一 p[[0]*5 for j in range(2)] #法二 s[[1,2,3],[4,5,6]] print(s) for i in range(2):for j in range(3):print(s[i][j],end ) 三维数组初始化 a[[[0 for _ in range(2)] for __ in…

RabbitMQ总结

目录 工作模式 简单模式 工作队列模式 发布订阅模式 路由模式 通配符模式 SpringBoot整合RabbitMQ 项目搭建 配置类中创建队列和交换机 编写生产者 编写消费者 消息的可靠性传递 死信队列 延迟队列 工作模式 RabbitMQ共有六种工作模式&#xff1a;简单模式&#xff08;Si…

网络编程 select模型

目录 select模型详解 select函数解释 整体代码 select模型在代码上和c/s模型的前面一部分是一样的&#xff0c;可以去看 这个https://blog.csdn.net/weixin_62859191/article/details/128397927?spm1001.2014.3001.5501&#xff0c;相同的代码如下 #define _CRT_SECURE_NO_…

cadence SPB17.4 - orcad - WARNING(ORCAP-2354) - Wire is hanging at Point

文章目录cadence SPB17.4 - orcad - WARNING(ORCAP-2354) - Wire is hanging at Point概述普通画法, 引起的不可理解的hang wire 警告ENDcadence SPB17.4 - orcad - WARNING(ORCAP-2354) - Wire is hanging at Point 概述 在使用SPB17.4从一个PCB中反推原理图. 原理图重建的差…

Jenkins入门(一)Jenkins介绍、GitLab基础环境安装

视频学习地址&#xff1a;01-Jenkins教程简介_哔哩哔哩_bilibili 一、介绍&#xff1a; Jenkins是一个独立的开源自动化服务器&#xff0c;可用于自动化各种任务&#xff0c;如构建&#xff0c;测试和部署软件。 它替代了管理员手动集成、构建、测试&#xff0c;提交代码后自…

深度学习:ResNet从理论到代码

深度学习&#xff1a;ResNet从理论到代码面临的问题模型退化问题ResNet核心思想反向传播公式推导残差的由来残差模块为什么效果好代码实现面临的问题 模型退化问题 随着网络层数加深&#xff0c;性能逐渐降低&#xff0c;但它并不是过拟合&#xff0c;因为在test error降低的同…

多准则决策问题评估方法 | 灰云模型(含代码)

目前多准则决策问题的评估方法主要分为定性分析方法和定量分析方法两类。定性分析方法主要包括专家咨询、熵权法、案例研究和德尔菲法等&#xff1b;定量分析法主要包括层次分析法、主成分分析法、因子分析法、模糊综合评价法、灰色综合评价法以及数据包络分析法&#xff08;DE…

Apollo星火计划学习笔记——Apollo路径规划算法原理与实践

文章目录1. 路径规划算法总体介绍1.1 Task&#xff1a; LANE_CHANGE_DECIDER1.2 Task&#xff1a; PATH_REUSE_DECIDER1.3 Task&#xff1a; PATH_BORROW_DECIDER1.4 Task&#xff1a; PATH_BOUNDS_DECIDER1.5 Task&#xff1a; PIECEWISE_JERK_PATH_OPTIMIZER1.6 Task&#xf…

人脸识别经典论文Arcface解读

来源&#xff1a;投稿 作者&#xff1a;小灰灰 编辑&#xff1a;学姐 研究背景 1、在人脸识别时&#xff0c;我们需要特征的discrimination 2、之前提出到的一些方法&#xff0c;如triplet loss,center loss, L-softmax,a-softmax都有一些缺陷。 3、centerloss&#xff1a;提…

2022.12.25 学习周报

文章目录摘要文献阅读1.题目2.摘要3.问题和方案4.介绍5.Attention Transfer5.1 Activation-based Attention Transfer5.2 Gradient-based Attention Transfer6.实验7.结论深度学习Attention机制的本质Encoder to Decoder抛开encoder-decoderAttention函数工作机制Attention机制…

20221225 海豚调度2.0.5连接星环库使用记录

阳阳的一周&#xff0c;算是挺过来了&#xff0c;现在只剩感冒了&#xff0c;迷迷糊糊的干了一周&#xff0c;混口饭吃不容易呀&#xff01;简单记录一下遇到的问题吧&#xff01; 连接hive(星环)数据库失败 方案一 &#xff1a; 海豚调度2.0.5使用的hive包是2.0版本,星环库包…

云原生之部署wordpress博客及设置圣诞主题风格

2022年圣诞节到来啦&#xff0c;很高兴这次我们又能一起度过~ CSDN诚邀各位技术er分享关于圣诞节的各种技术创意&#xff0c;展现你与众不同的精彩&#xff01;参与本次投稿即可获得【话题达人】勋章【圣诞快乐】定制勋章&#xff08;1年1次&#xff0c;错过要等下一年喔&#…

Python的条条框框

Python的条条框框 了解编程语言的分类 从运行角度的分类 从运行角度来看&#xff0c;编程语言的类型可以分为两种&#xff1a;编译型和解释型。 Python属于解释型语言。 解释型语言&#xff1a; 代码可以直接运行。当然&#xff0c;这也是依赖于附加程序&#xff08;解释器&…

【VUE3】保姆级基础讲解(三)非父子组件通讯,$refs,动态组件,keep-alive,Composition API

目录 非父子组件通讯 全局事件总线mitt库 组件的生命周期 $refs 动态组件 keep-alive 异步打包 v-model绑定组件 Composition API 定义响应式数据 readonly toRefs与toRef computed $ref 生命周期钩子 provide和inject watch侦听 watchEffect script setup语法…

C++必须掌握的知识点

面向对象的三大特性 封装 继承 父类中所有的非静态成员都会被子类继承下去&#xff0c;只是父类的私有成员被编译器屏蔽了&#xff0c;访问不到。可以利用开发人员工具查看对象模型继承中&#xff0c;先构造父类&#xff0c;再构造子类&#xff0c;析构的顺序和构造的顺序完…

QT系列第8节 自定义对话框

在实际业务开发中经常要有各种各样的对话框来处理用户信息&#xff0c;本节就结合例子来说明如何自定义对话框。 目录 1.创建对话框 2.创建非模态对话框 3.创建模态对话框 4.综合案例 1.创建对话框 &#xff08;1&#xff09;项目鼠标右键菜单 - 添加新文件 &#xff08;…

Hexo + Butterfly 自定义页脚

原文链接 &#xff1a;Hexo Butterfly 自定义页脚 推荐阅读 基于 Hexo 从零开始搭建个人博客&#xff08;一&#xff09;: 环境准备基于 Hexo 从零开始搭建个人博客&#xff08;二&#xff09;: 项目初识基于 Hexo 从零开始搭建个人博客&#xff08;三&#xff09;: 主题安装…