C语言(表达式,语句和副作用和序列号)

news2024/11/16 16:21:08

目录

一.表达式

二.语句

三.副作用和序列点

一.表达式

由运算符和运算对象组合。最简单得表达式是一个单独的运算对象,以次为基础可以建立复杂的表达式

4

4+21

a*(b + c/d)/20

运算对象可以是常量,变量或二者得组合。一些表达式由子表达式组成(子表达式既较小的表达式)

c/d是上面例子中a*(b+c/d)/20得子表达式

C表达式得一个最重要得特性是,每个表达式都有一个值,要获得这个值,必须根据运算符优先级规定得顺序来执行操作

Q = 5*2作为一个整体得值是10

q>3因为是关系表达式不是0就是1(表达式值为1,条件为假,表达式值为0)

二.语句

语句是C程序得进本构建块。一条语句相当于一条完整得计算机指令

legs=4是一个表达式

legs=4;是一个语句

;是一个空语句

语句可以改变值或调用函数

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

三.副作用和序列点

副作用:副作用是对数据对象或文件得修改

States = 50;

这个语句得副作用是将变量得值设置为50,而语句的主要目的其实是求值50(因为每个表达式都有一个值)。或states = 50 + 20;语句的主要目的是求50+20=70。而把states内存地址上的值修改为70就属于该语句的副作用了。

序列点:程序执行的点,在该点上,所有的副作用都在进入下一步之前发生。语句中的分号就是一个序列点。换个角度来说,在一个语句中,赋值运算符,递增运算符和递减运算符对运算对象左的改变必须在程序执行下一条语句之前完成。另外,完整表达式的结束也是一个序列点。

完整表达式,这个表达式不是另一个更大表达式的子表达式。

比如while(a++) 这里面的(a++)就属于完整表达式,它会在表达式结束后让a++自增。

下面我们来看个例子来深度了解下。

来看这个例子

 nextnum = (y + n++) * 6;

这里最容易产生误会的点就在n++自增上,我们上面说过,副作用只能在序列点或完整表达式后尝试,而我们注意看(y + n++)属于 (y + n++) * 6的子表达式所以不是完整表达式,这就意味着n的自增只会发生在;后,而结果的确也是这样。

一般遇到这种容易尝试误解的表达式,最好的方式就是拆开。

 nextnum = (y + n++) * 6;

等于

 nextnum = (y + n) * 6;

n++;

在看这个例子

在这里例子当中,

(1 + n++) + n;其实等于1+3+3为7。n得自增只有等到(1 + n++) + n完整表达式结束才能完成


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/349486.html

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

相关文章

python--石头剪刀布游戏(列表)

本使用了下面几篇文章的知识: python(8)--列表初阶使用_码银的博客-CSDN博客 python(7)--if语句_码银的博客-CSDN博客 一、学习目标 利用列表实现石头剪刀布游戏 二、实验环境 Pycharm社区版、win11 三、代码 先贴代码,有需要的直接拿,想要进…

Hive提升篇-Hive修改事务

简介 Hive 默认是不允许数据更新操作的,毕竟它不擅长,即使在0.14版本后,做一些额外的配置便可开启Hive数据更新操作。而在海量数据场景下做update、delete之类的行级数据操作时,效率并不如意。 简单使用 修改HIVE_HOME/conf/hi…

JS逆向寻找生成bid变量的加密算法,一顿操作猛如虎,结果发现原来是混淆代码

分享一下最近我JS逆向的心得。 我最近使用Python爬取某个网站某个链接,cookie必须加入qgqp_b_id参数才能获取数据。 这个参数是一个32位字符串,通过浏览器的开发者工具分析网页源代码,了解到这个qgqp_b_id变量不是服务器返回给客户端的&…

Whids:一款针对Windows操作系统的开源EDR

关于Whids Whids是一款针对Windows操作系统的开源EDR,该工具所实现的检测引擎基于先前的 Gene项目构建,并专门设计可以根据用户定义的规则匹配Windows事件。 功能特性 1、为社区提供一款功能强大且开源的Windows EDR; 2、支持检测规则透明化…

有了java基础,迅速学完Python并做了一份笔记

面向过程Python简介Python和Java的解释方式对比Java:源代码 -> 编译成class -> Jvm解释运行Python:源代码 -> Python解释器解释运行我经常和身边的Java开发者开玩笑说:“Java真变态,别的语言都是要么直接编译要么直接解释…

无线蓝牙耳机哪个好用?好用的无线蓝牙耳机推荐

随着苹果取消3.5mm耳机孔,近几年蓝牙耳机便逐渐取代有线耳机以强势的姿态闯入人们的日常生活。听歌、游戏、运动等,使用蓝牙耳机的人越来越多。经常看到有人问,无线蓝牙耳机哪个好用?针对这个问题,我来给大家推荐几款好…

消息称索尼计划为PS5推出两款蓝牙耳机,Find My蓝牙耳机用途广

根据国外科技媒体 Insider Gaming 报道,索尼计划进一步丰富 PlayStation 5 的配件生态,将会推出两款耳机,一款采用类似于 AirPods 的 TWS 设计,另一款则是无线头戴式耳机。 消息称 TWS 耳机的内部代号为“Project Nomad”&#…

Debug分支在什么场景下使用?怎样创建Debug分支?

在项目的正常开发过程中,之前发布过的版本可能很会出bug,这时就需要停下来现在的开发任务,先去修改bug,完成后再回来继续开发任务。git中stash提供了保存现场的功能,可以把当前工作区、暂存区中的内容不需要提交而保存…

Elasticsearch:Text vs. Keyword - 它们之间的差异以及它们的行为方式

很多刚开始学习 Elasticsearch 的人经常会混淆 text 和 keyword 字段数据类型。 它们之间的区别很简单,但非常关键。 在本文中,我将讨论两者之间的区别、如何使用它们、它们的行为方式以及使用哪一种。 区别 它们之间的关键区别在于,Elastic…

Win 10电脑摄像头提示错误代码0xa00f4244怎么办?

如果你的Windows 10电脑无法打开摄像头,提示“我们找不到你的摄像头”的错误消息,错误代码是0xA00F4244,原因可能是杀毒软件阻止了摄像头,或者是摄像头驱动程序有问题。 小编为你整理了摄像头错误代码0xA00F4244的解决方法&#…

浏览器(以chrome为例)设置对WebGL的支持

某些浏览器由于不支持WebGL渲染,在浏览三维场景服务的时候会报“Your WebGL implementation doesn’t seem to support hardware accelerated rendering”错误,解决方法如下: 1、首先确保电脑支持gpu硬件加速,并下载最新的 GPU 驱…

存储性能软件加速库(SPDK)

存储性能软件加速库SPDK存储加速存储性能软件加速库(SPDK)SPDK NVMe驱动1.用户态驱动1)UIO2)VFIOIOMMU(I/O Memory Management Unit)3)用户态DMA4)大页(Hugepage&#xf…

Part 4 描述性统计分析(占比 10%)——下

文章目录【后续会持续更新CDA Level I&II备考相关内容,敬请期待】【考试大纲】【考试内容】【备考资料】【扩展知识】4、相关分析4.1、相关分析的描述——散点图4.2、相关分析的类型4.3、相关分析的度量4.3.1、协方差4.3.2、相关系数【后续会持续更新CDA Level …

Pyside6(3): 自动生成UI的Qt参数输入对话框

1.前言参数输入界面是桌面软件开发最繁琐的部分之一。特别是当系统中存在多种可编辑的数值模型时,由于各个模型的字段不同,每个字段的输入类型也不同,需要制作不同的UI,使用不同的UI控件,无疑会耗费大量时间&#xff0…

vite+vue3 proxy配置代理服务器解决本地运行跨域问题

vitevue3 proxy配置代理服务器解决本地运行跨域问题 1. 什么是跨域呢? 首先,明白什么是同源策略?同源就是指 协议、域名、端口 都要相同,其中任何一个不同都会出现跨域。例如: http://www.xxx.com:8000 // http 是协…

2023,为什么我的简历还是石沉大海?

对于应聘者来说 ,我们经常见到这样的情况 ,投递的简历要么是已送达(未读),要么是已读不回 ,也有的是沟通上几句就没有了下文 。对于这样的结果我们是既好奇又郁闷 ,好奇的是为啥大多数的简历都石…

新库上线 | CnOpenDataA股上市公司交易所监管措施数据

A股上市公司交易所监管措施数据 一、数据简介 证券市场监管是指证券管理机关运用法律的、经济的以及必要的行政手段,对证券的募集、发行、交易等行为以及证券投资中介机构的行为进行监督与管理。 我国《证券交易所管理办法》第十二条规定,证券交易所应当…

数据结构刷题

数据结构刷题 文章目录数据结构刷题计算时间复杂度练习题答案不带头结点的单链表的插入和删除运算数据结构头插法和尾插法建立单链表二叉树各种方法实现数据结构图的练习题习题答案习题计算时间复杂度练习题 1、设 n 为正整数。试确定下列各程序段中前置以记号的语句的频度。 …

课程规范性要求

课程制作规范 图片规范 允许范围:CC协议 / 作者授权 / 网站代理授权书 图片大小要求:1600 x 1200 dpi 图片长宽比:4:3 每章节格式要求 Week number 本周目标 1.通过背景学习,了解四足机器狗mini pupper上的微型控…

Redis实战—黑马点评(二)缓存篇

Redis实战—黑马点评(二)缓存篇 目录Redis实战—黑马点评(二)缓存篇1. 什么是缓存1.1 缓存的作用和成本2. 添加 Redis 缓存3. 缓存更新策略3.1 三种更新策略3.1.1 主动更新策略4. 缓存穿透4.1 常见两种解决办法4.1.1 缓存空值4.1.…