关于C/C++中函数参数传递的规则

f(A,B,C)
在编译程序中,对函数参数传递的处理是由右向左进行的。
因此,先传递的是最右边的参数的值。这个结论在日常使用的时候其实也很难发现有什么具体的区别,但是在编译原理中或者一些偏向于理论的考试中这恰恰是最容易忽视的地方
下面简单举例说明:
测试程序:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;int fun(int x,int y);
int main()
{int i=1;cout<<fun(i,++i)<<endl;return 0; 
}int fun(int x,int y)
{return x+y;
}

在查看运行结果前可以自己猜一下运行结果的数值。

运行结果:
运行结果
先传递二参,即i先进行自增,这是函数两个实参都变为了2,所以结果是4。

转换一下顺序再次进行比较:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;int fun(int x,int y);
int main()
{int i=1;cout<<fun(i,i++)<<endl;return 0; 
}int fun(int x,int y)
{return x+y;
}

运行结果:3
运行结果
这里先传二参,但是先传后增,所以在到一参的时候值还是1,传完后二参变2,所以结果为3.

用到的地方不多,但是在写C的编译器的时候关于这些语法需要注意一些。
这里也需要注意后增是在一次传值之后就会执行自增。前增是在进行一次传值前进行传值。

走

我觉得慢慢来,是一种诚意。

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

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

相关文章

SQL的主键和外键

SQL的主键和外键的作用 SQL的主键和外键的作用&#xff1a; 外键取值规则&#xff1a;空值或参照的主键值。 (1)插入非空值时&#xff0c;如果主键表中没有这个值&#xff0c;则不能插入。 (2)更新时&#xff0c;不能改为主键表中没有的值。 (3)删除主键表记录时&#xff0c;你…

win 11bitlocker恢复密匙一般情况的解决方式(这里指的是你现在使用的微软账户一直没有变更过)

本来没有打算写这一篇解决帖子的&#xff0c;但是最近好多微博的友友都在私我询问解决方法&#xff0c;孩子虽然很热心&#xff0c;但是真的回复不过来了&#xff0c;打字太累了&#xff0c;这里给大家简单指个路&#xff0c;希望能够对大家有所帮助。 当时出现这个问题的时候…

软件测试之黑盒测试-边界值分析法(理论白话学习/期中期末备考)

这里简单进行一下知识体系的梳理。 文章目录前言一、边界值分析是什么&#xff1f;二、因果图1.分析规格说明中给出的原因&#xff0c;结果和是否可能存在中间态。2.标约束&#xff0c;画图三、画判定表并画出对应的测试用例表。总结前言 主要从三个方面谈一下简单应用 边界值…

window下搭建Python3.7+selenium3.1.1+pycharm环境

1.安装Python3.7 1.1 下载 Python并安装 Python3.5 &#xff08;勾选上 Add Python3.7 to PATH&#xff09; 点击 Install Now&#xff0c;安装完成后将python路径加入环境变量Path 如D:\python35\Python35;D:\python35\Python35\Scripts; 1.2 安装完成之后&#xff0c;winr…

软件测试之单元测试之Junit测试使用前准备

Junit测试只能说是算的上软件测试这门课中首次出现需要实操进行测试的工具了。 可以理解为前面的黑盒测试&#xff0c;白盒测试是为了理解一种测试思想&#xff0c;根据测试思想能够进行设计测试样例&#xff0c;到了Junit单元测试这里&#xff0c;就成了利用工具进行具体的测…

解释为脑瘫的那张图_Python GIL全局解释器锁详解(深度剖析)

通过前面的学习&#xff0c;我们了解了 Pyton 并发编程的特性以及什么是多线程编程。其实除此之外&#xff0c;Python 多线程还有一个很重要的知识点&#xff0c;就是本节要讲的 GIL。GIL&#xff0c;中文译为全局解释器锁。在讲解 GIL 之前&#xff0c;首先通过一个例子来直观…

SPOJ3276 D-query

题意&#xff1a;n个数 a1...an&#xff0c;q组询问&#xff0c;每组询问给定 l&#xff0c;r&#xff0c;输出 [ l, r ] 有多少不同的数 ( n ≤30000, q ≤200000, ai ≤ 106 ) 离线 树状数组维护 1 #include<bits/stdc.h>2 3 using namespace std;4 5 const int MAXN…

关于string型的处理——pta L1常用

1.关于带空格字符串函数的输入 a.getline(cin,str); b.getline(cin,str,c);(c为字符。) #include<bits/stdc.h> using namespace std; int main() {string str1,str2;getline(cin,str1); //输入带空格的字符串&#xff0c;当输入空格的时候终止 getline(cin…

电路板上的插头怎么拔下来_空调维修排查电路板内外原因

点击链接&#xff1a;空调变频板维修在线课程来了空调维修资料库重大更新&#xff0c;正在上传中&#xff0c;点击马上拥有排查电路板内外原因熟悉电路结构&#xff0c;先分清控制板的内外电路&#xff0c;外部检测、外部控制等&#xff0c;分清故障产生是内因还是外因——确定…

在比赛中一些对数和数组的操作的应用(持续更新)

1.整形数组的排序-sort函数&#xff08;在比赛中如果比赛不卡时间的话可以节省不少时间&#xff09; sort(na,nb);(n为你想要进行排序的整形数组)&#xff1b; #include<bits/stdc.h> using namespace std; int main() {int num[10]{1,23,232,213,112,123,342,42,121,12…

软件测试知识体系结构整理(一)(个人为备战期中期末理论考试所总结,如需要系统学习关于软件测试的知识,请参考其他博主)

系列文章目录 第一章 软件测试基本概念 文章目录系列文章目录一、软件测试基本概念1.软件缺陷2.软件缺陷类型3.软件缺陷等级4.关于对软件测试的一般误区5.软件测试环境二、白盒测试1.白盒测试的概念与优缺点理解2.逻辑测试3.基本路径测试三.黑盒测试1.等价类测试2.边界值分析法…

算法训练 6-1 递归求二项式系数值

算法训练 6-1 递归求二项式系数值 问题描述样例输入一个满足题目要求的输入范例。3 10样例输出与上面的样例输入对应的输出。数据规模和约定输入数据中每一个数的范围。例&#xff1a;结果在int表示时不会溢出。 import java.util.Scanner;public class Main {public static v…

印象笔记mac版 同步问题_印象笔记表示 今年将大幅提升产品体验

【手机中国新闻】尽管去年取得了一些成绩&#xff0c;但印象笔记依旧在业务泥潭中苦苦挣扎&#xff0c;该公司一度裁员15%并承受了一些高管的离职。Ian Small去年10月起取代2015年上任的Chris O Neill成为印象笔记现任CEO&#xff0c;相较于一些相关的老生常谈的创新&#xff0…

函数基本语法及特性

我先复制了下面一段&#xff0c;挺有意思的。 背景提要 现在老板让你写一个监控程序&#xff0c;监控服务器的系统状况&#xff0c;当cpu&#xff3c;memory&#xff3c;disk等指标的使用量超过阀值时即发邮件报警&#xff0c;你掏空了所有的知识量&#xff0c;写出了以下代码 …

将一个项目发布到Tomcat上并进行运行

1.下载任意版本的Tomcat&#xff0c;我这里是9的版本&#xff0c;应该是当前我认为比较好用的一个版本了&#xff0c;有需要的话可以到公众号自取。 微信公众号搜索“是短短吖” 后台回复“Tomcat”即可。 2.在webapp下部署一个项目Test&#xff08;名字自选&#xff0c;英文…

利用在Tomcat上部署servlet程序(手动布置加强关于servlet知识的理解,当前的idea是可以实现自动部署的)

一.手动部署 1.在idea里简单的建立一个测试的项目&#xff0c;创建一个简单的java文件&#xff0c;创建一个简单的类&#xff0c;进行继承HttpServlet&#xff0c;我这里以TT为例。&#xff08;PS:为避免后续麻烦&#xff0c;代码会最后给出全部&#xff0c;理解过程即可&…

Xcode9的xib只支持iOS7.0及以上版本

Xcode升级到9以后&#xff0c;对xib的最低编译版本有了限制&#xff0c;以前未指定版本的xib会报错&#xff0c;如下 遇到这个情况&#xff0c;根据错误提示很明显提示的是ib文件支持的最低版本是iOS7&#xff0c;所以我就将该xib的版本设为iOS7.0&#xff0c;如下 未指定版本的…

UI设计PS初学入门知识总结——新建的理论知识

1.一般设计的类图分类 2.新建之尺寸&#xff08;宽度&#xff0c;高度&#xff09; 分为两种&#xff0c;一种是以像素为单位&#xff0c;一种是为真实长度为单位。 一类图一般以像素为单位&#xff0c;二类图必须以真实长度为单位。 宽度和高度的细节因素根据实际需求去做&a…

20172329 2017-2018-2 《程序设计与数据结构》实验一报告

20172329 2017-2018-2 《程序设计与数据结构》实验一报告 课程&#xff1a;《程序设计与数据结构》 班级&#xff1a; 1723 姓名&#xff1a; 王文彬 学号&#xff1a;20172329 实验教师&#xff1a;王志强 实验日期&#xff1a;2018年3月21日 必修/选修&#xff1a; 必修 1.实…

VS集成Qt开发入门(简易时间显示)

VS集成Qt开发入门&#xff08;简易时间显示&#xff09;软件开发入门开发环境简单时间显示&#xff08;LcdNumber&#xff09;ui界面设计&#xff08;clock.ui&#xff09;工程文件&#xff08;clock.h&#xff0c;clock.cpp&#xff09;头文件clock.h&#xff1a;源文件clock.…