怎么在一个子函数里使用全局变量作为参数???

例如:
已经定义了一个全局变量extern int X
然后在一个函数SUM(int X,int Y,int Z)
我想让这个函数的参数intX调用的是全局变量X
怎么弄?

0

10个回答

在调用的地方直接 SUM(X,..., ...); 就可以了

2

为什么不把函数参数改名呢。函数参数改名,只有这个函数本身的代码需要修改。

0

你如果X是全局变量的话,这个方法的参数应该不需要int X吧

0

可以把sum函数后的int X改为X

0

如果想让函数使用这个的话,不需要将全局变量作为参数,可以直接在函数快里使用,但是函数的参数不能有与全局变量同名的,否则会覆盖全局变量。

0

在sum函数中用int a =::X 取得a的值即为全局变量X的值

0

改名是最好的,实在想用的话可以试试指针传递;

0

调用时直接将X作为参数传入就行了吧

0

你将这个参数定义成全局的,直接在函数里使用赋值就可以了

0

正常直接调用就好,
如果是有两段代码文件要合并到一起 ,改变量名称太玛法的话,其实可以用指针来操作变量。
int *X_p=&X;
之后用*X_p代替X

#include
#include
int X = 2;

int *X_p = &X;

void SUM(int y,int z){
*X_p = y+z;
}

void SUM_P(int *X,int y,int z){
*X = y+z;
}

int main()
{

SUM(100,100);
printf("X = %d\n",X);
SUM_P(X_p,200,100);
printf("X = %d\n",X);
return 0;

}

打印分别为200 和300

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JS中全局变量作为函数实参传入的问题
昨天面试时,被问到了以下的JS代码问题,对比两种情况的输出思考为什么会是这样的结果第一种情况nvar a=[1,2,3];nfunction foo(a){n a=[4,5,6];n}nfoo(a);nconsole.log(a); // [1,2,3]第二种情况nvar a=[1,2,3];nfunction foo(a){n a.push(4);n}nfoo(a);nconsole.
c++中定义一个全局变量,子函数修改变量后,主函数没有改变问题
在子函数声明时加&rn如rnrn (int *&head);
[初学笔记]matlab中主函数和次函数的建立和调用(嵌套与不嵌套),全局变量global与子函数的使用
1 全局变量和子函数rn使用全局变量的话,那么无论在主函数和子函数中,都是通用的一个定义的变量。并且global所定义的全局变量应当现在主函数中进行定义。rn如果使用了global,那么主函数和子函数应当分开在两个m文件里头,二者不能同时放在一个m文件,不然无法调用rn使用了global的主函数,其格式中并不需要有functionrnrnrn对了为了区分其他的变量,全局变量一般是用大写的rnrnr
jmeter如何提取json数据作为其他的接口入参
在我们实际的业务请求中,服务器响应用户请求的数据格式为JSON,然而我们通常需要提取接口A的响应值作为接口B的入参;那么在实际的应用中,从json响应值取得这个参数作为下一下接口的入参数呢?比如对于用户这个请求,/communicator/app/share/getSharelist246.action?sessionId=5DE154A0AAFC0323...
递归 —— 作为全局变量 vs 作为参数
以动态规划版的斐波那切数列为例,进行说明:作为全局变量memo = {0:0, 1:1}ndef fib(n):n global memon if n not in memo:n memo[n] = fib(n-1) + fib(n-2)n return memo[n]作为参数def fib(n, memo):n if n not in memo:
全局变量作为函数的参数传递会发生什么结果?
首先看一段代码!!!nnn#include <iostream>nusing namespace std;nint n = 10,m = 77777;nstruct test{n int n = 9;n void print(int n){n cout << this->n << endl;n cout << n << endl...
汇编中调用子函数时,参数传递的三种实现方式
1)用寄存器(变量)传递参数, 在参数不多的时候采用这种方式(用的最多)。nn         附图实现的功能为串口发送ASCII码到上位机。,采用的就是寄存器传递参数方式。nnnn2)用地址表传递参数nn        在主程序中建立一个地址表,把要传递的参数都存放到地址表中,然后将地址表的首地址通过寄存器传送到子程中,最后子程序通过地址表获取参数。nn nn3)用堆栈传递参数nn       ...
JSP中的全局变量和局部变量
刷新问题:n jsp局部变量保存在栈中,所以一定要有初值。当jsp执行很多次时,调用多少次就会重新初始化多少次,所以局部变量的值始终保持不变。对于全局变量来说,不管执行多少次,上一次对全局变量的执行结果即为下一次执行的初始值。测试代码如下:n nn<%@ page language="java" contentType="text/html; charset=GBK"n pageEnc...
不错的递归题:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。
题目:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。解析:每次求得最后一个数字然后加递归剩余的数字(每次缩短一个长度)。注意退出的条件是只剩2位数字了。 //1234 4321n public static String reverseNum(int num){n if(num>=10){
C/C++子函数参数传递,堆栈帧、堆栈参数详解_1
注:目前开通个人网站朝思录,之后的博文将在上面更新,CSDN博客会滞后一点nnnn因为参数传递和汇编语言有很大联系,之后会出现较多x86汇编代码。nn该文会先讲一下x86的堆栈参数传递过程,然后再分析C/C++子函数是怎样通过堆栈传递参数的。 n注:汇编语言的过程和C/C++的子函数是一回事。nnnn寄存器参数,存储器参数和堆栈参数都可以用于x86汇编乃至其他汇编语言传递参数的方式。但C/C++在
关于将数组作为参数传递给函数的简单使用
简单的方式可以将数组作为一个全局变量,然后就可以在函数中使用了.另外的一种方式为:function1(int a[])rn{ rn cout<<a[0]<<endl;rn}int main()rn{rn int a[2] = {1,2};rn function1(a);rn}参数传入的时候只需要传入数组名称即可.
关于C语言函数形参(全局变量)的几点说明
最近在写队列函数时,在调试过程中碰到形参的一些问题,作为心得写在这边。rn1.函数的形参属于局部变量,仅在定义的函数内有效,函数返回后失效。rn2.当在一个函数(比如main函数)内调用另外一个函数时,例如:rnvoid fun(unsigned char x)rn{rn x = x+1;rn}rnrnint main(void)rn{rn unsigned char data = 0x10;rn rn while(1)...
使用application类定义全局变量传递参数
**application类是安卓为所有service,activity类提供全局变量的一个基类 n在程序启动的时候系统会自动创建一个application类,并且是利用单例模式创建,其他类调用时都是同一个对象 n可以自己写一个类通过集成该类来定义自己需要的global application state,需在AndroidManifest.xml中注册,在<-application->标签中添加a
Jmeter全局变量的设置及使用
函数助手提供了一个函数用于设置全局变量属性。nn__setProperty:用于动态设置Jmeter属性nn步骤:nn1、在一个请求响应中,通过JSON Extractor获取局部变量值,命名为tokennnnn2、用后置处理器BeanShell PostProcessor设置全部变量nn步骤:nn1)脚本输入:${__setProperty(tokenG,${token},true)}nntok...
九、案例:新建关键字,并将参数设置全局变量,方便其他自动化用例调用
     在写自动化的时候,有些场景是常用的,例如登录。针对常用的步骤,我们可以写成一个固定化的资源,其他自动化用户需要的时候,可以直接调用即可,这样即简洁又方便。1.     新建资源2.     导入对应的库信息3.     新建外部传输变量如果有些参数需要外部传过来的,这里我们就可以创建一个接收外部传输变量4.     新建关键词5.     编写固定资源逻辑${My_path}是调用外部数...
C语言 子函数返回一个局部指针变量的疑惑
输出结果如下图:rnrnrnrnrn我的分析:rn内存分布图如下图:rnrnrn当子函数返回后,局部变量已经超出了作用域啊,为什么在main()函数中还能通过指针rp间接访问变量x呢??为什么第一次访问可以输出12,第二次访问就内存释放了呢,输出一个随机数????
全局变量不可用和立即执行函数
n n n 全局变量不能用n&amp;lt;body&amp;gt;n &amp;lt;div id=&quot;parent&quot;&amp;gt;&amp;lt;/div&amp;gt;n &amp;lt;div id=&quot;x&quot;&amp;gt;&amp;lt;/div&amp;gt;n &amp;lt;script&amp;gt;n console.log(parent) // Windown console.log(x) // &a
在SpringMVC中的Controller里面定义全局变量
n使用SpringMVC的时候,如果想要在Controller中定义一个全局变量,并且实现在不同用户访问程序的时候,所得到的全局变量不一样的(线程安全的),这个时候就可以用Spring的注解@Scope来实现:rn@Controllerrn//把这个bean 的范围设置成session,表示这bean是会话级别的,rn@Scope(&quot;session&quot;)rnpublic class XxxContr...
递归调用中使用全局变量和函数参数之间的差异
对树、图进行 遍历时,包括 前序、中序、后序、深度搜索、广度搜索rnrn存在一些参数,可以用rn 1. 全局变量表示,递归结束后必须对该变量修改,恢复原值rn 2. 普通函数参数,因为递归调用函数时,实际上,从内存分布上看,每一层调用都保存了该层函数的参数,因此递归返回上层时,不会影响原参数值rnrnrn1. 全局变量表示rn[code=&quot;c++&quot;]int currentSum...
递归函数中自定义参数和全局变量,参数与参数引用区别
举例来说 ,在一棵树上求mu'b目标值为target的路径,对于参数有这样集中应用情况nn1.全局变量记录当前路径之和sum,存储当前节点的vector&amp;lt;int&amp;gt;也可以当成全局变量nn我们每一次都是改变的这个全局变量,所以dang当我们遍历到最后时,不符合要求的时候,都要把路径上计算过的值和结点一并抛出pop和--,当然对于参数中存在引用lai'来说也是同样道理,因为引用其实就相当于直...
js ajax里的参数设置为全局变量
如何把ajax里success函数返回的data数据,设置为全局变量,关键在于设置,async:false。还有,如果ajax嵌套ajax,也要注意设置为同步请求才可以。
python的unittest架构公共参数token提取
额。。。每个请求都有token值的传入,但是token非常易变,一旦变化,所有的接口用例都得改一遍token,工作量太大了。。。rn那么有没有一种方法能把token提取出来,作为一个全局变量,作为一个参数,从而牵一发而动全身呢??rn经过探索,具体方案如下rn先定义一个全局变量token类型为stringrn然后把请求链接定义一个变量类型为stringrn然后定义第三个变量=前两个变量相加rn然后
递归调用中使用全局变量或者函数参数
在编写递归函数时,我们可以选择使用全局变量,也可以选择使用函数参数。这两者的差别在于: n全局变量的形式,递归结束后必须对该变量修改,恢复原值;n函数参数的形式,因为递归调用函数时,实际上,从内存分布上看,每一层调用都保存了该层函数的参数,因此递归返回上层时,不会影响原参数值。n拿一道题举例,求二叉树中和为某一值的路径: n全局变量的写法:int currentSum = 0; nvector<N
Kettle 参数、变量和全局变量(kettle.properties)使用
有没有能统一管理一个参数,然后让所有的transformation和job都可以读到呢? 答案是有 rr1.首先,打开.kettle\kettle.properties,直接在里面定义,(注意这个文件需要与spoon.bat放在同一个目录下面)比如: rparamName=to_char(sysdate,'yyyymmdd') 这里支持数据库函数,r说的更直白点,就是这里定义是个啥,那么在tran
perl 传递数组作为参数
#perlrn rn rn #\ ,取地址 rn rn rn rn sub array rn rn rn { rn rn rn      my ($arr1,$arr2) = @_ ; rn rn rn      print "@$arr1 : @$arr2"; rn rn rn }rn rn rn rn rn rn sub arra
关于方法中的self参数和全局变
1、python中,类中方法定义的第一个参数始终是self,表示引用方法的对象自身(如a.py中的obj对象),定义方法的语句形如a.py中的Tprint(self, value);在java中也有类似的表示对象自身的参数,但定义时不会明确写出来,所以叫做隐含参数,定义方法的语句形如public void Tprint(value)。nn2、注意Tprint中的global修饰符,通过将变量va声明为全局变量,使得Tprint()能够访问其上层的命名空间的变量。反之,如果这里va不声明为全局变量,则va =
Jmeter如何实现 全局变量
所谓全局变量我们就可以理解为是在一个jmeter 测试脚本中可以到处起作用的一个值。n 基本步骤n 在获取数据的线程中先将我们想要的数据通过相应的后置处理器拿出来然后放在一个变量当中。n 通过 setproperty 函数来设置具体的属性名及属性值,但是这句话只是想当于在调用一个函数,我们必须要通过一个取样器让它执行起来才会起作用。【这个操作完成之后我们就相当于让这个数据已经变成了全局】n 此...
主函数调用其他源文件定义的全局变量偶尔出错
问题描述:源文件定义全局变量gData(结构体变量成员),主函数中调用一个子函数function(gData),并将gData作为该子函数的入参。但偶尔存在入参值与实际值不一样的现象。rn问题分析:这钟现象的原因可能是,在gData发生变化后,编译器没有从变量(gData)地址重新读取新数据,而是读取了寄存器中的值作为当前值,导致错误!rn解决方法:rn       一:将gData的地址作为入参
指针在子函数中分配空间若干问题
如果想要在子函数中为指针分配空间,那么参数应该是指针,还是指针的引用呢?0、知识储备:指针与cout#include<stdio.h>n#include<stdlib.h>n#include<iostream>nusing namespace std;int main()n{ n int b=1;n int *a=&b;n cout<<a<<endl;n cout<<&a
SpringBoot读取配置文件创建全局变量
&nbsp;&nbsp;由于公司架构问题,生产库与测试库难以剥离,项目的增加后生产库越来越庞大,数据库有时候面临崩溃的边缘。公司经过研究后,运维方面通过物理条件横向扩展来解决,增加库的容量、加速正式库与测试库的拆分;项目方面通过运维整理出的慢SQL集进行优化,组长通过Review代码整理项目影响数据库所在问题。n&nbsp;&nbsp;经过整理后发现一个问题,项目中有很多定时任务在跑,但是定时任...
控制器之间的数据传递——全局变量传值
全局变量传值nnnn一. 实现步骤nnn在界面2中声明一个全局变量,并且用它赋值保存要穿的值n在界面1中用extern声明界面2中的全局变量,就可用他保存的值赋值nnnnn二. extern优缺点nnn优点nnn a.全局可视,任何一个函数都可以访问和更改变量值。 n b.内存地址固定,读写效率高nn缺点nnn a.容易造成命名冲突 n b.当值不正确或者出错时,很难确定是哪个函数更改过这
构造函数在线程中的用法(传参数)
1.调用线程的方法rn[code=&quot;java&quot;]public void monitorServerMothod(){rn logger.info(&quot;定时任务开始&quot;);rn try {rn List list = new CopyOnWriteArrayList();rn list=monitorService.getServerMonitor();rn executor.ex...
python:线程的使用、线程共享全局变量、列表作为参数(全局变量)、避免全局变量被修改
进程是资源分布的单元rn线程是进程中真正执行代码的rn进程运行起来,会有一个主线程进行运行 rn父子线程:相互独立运行,当所有的子线程执行完后,主线程才执行完rnrnrn下面这个程序就是一个线程rn#线程也是python实现多任务的一种方式,thread模块是比较底层的模块n#threading模块是对thread做了一些包装,更方便使用n#多线程的执行nimport threadingnimpo
关于C语言形参与实参的问题探究——子函数中改变主函数字符串数组的值
这里很巧,因为刚好数组的首地址表示出来就是数组本身~~!所以虽然涉及到了传入指针,也很简单~~nn#include &amp;lt;iostream&amp;gt;n#include &amp;lt;stdio.h&amp;gt;n#include &amp;lt;string.h&amp;gt;nusing namespace std;nnvoid converse(char str[]){//还有另一种方法,就是converse(char ...
Vue文件配置全局变量
首先新建一个.vue 文件用来定义全局变量 GLOBAL.vuennnn&amp;lt;!--全局变量配置文件--&amp;gt;n&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;nn var BASE_URL=&quot;http://127.0.0.1:8080&quot;;n /*暴露变量*/n export default{n BASE_URLn }nn&amp;...
simulink中设置使用全局变量
参考Share Data Globallyrnsimulink中设置一个全局变量,在自定义的matlab function中可以直接调用,无需定义输入输出。具体如下:rn整个系统为350HZ,自定义的matla function 在一秒中执行350次,后一次执行时要调用前一次的输出。rnrnrn需要设置全局变量 rate_target_ang_vel 完成每次的输出和输入。rnrnrn1、在模型的
C# WebForm定义全局变量
在项目中新建一个.cs的类,里面定义一些变量如rnusing System;rnusing System.Data;rnusing System.Configuration;rnusing System.Web;rnusing System.Web.Security;rnusing System.Web.UI;rnusing System.Web.UI.HtmlControls;rnusing S
将Eigen作为函数参数传递
使用Eigen,这更为重要:按值传递固定大小的可矢量化特征对象不仅效率低,而且可能是非法的或使程序崩溃! 原因是这些Eigen对象具有在通过值传递时不受尊重的对齐修饰符。nn...
Keil 全局变量定义与声明方法
EEPROM中变量会用在Main.c、Modbus.c中需rn1、Head.h:rnextern typedef struct  EEPROM_Structrn{rn........rn}EEPROM_Struct;rnextern EEPROM_Struct MyEEPROM;rnrnrn2、EEPROM.c:rn EEPROM_Struct MyEEPROM;rnrnrnrn3、Modbus.
mybatis中的变量(if test),#与$
默认情况下,mapper文件里的方法只能有一个参数,参数类型parameterType是java语言中的类型,不需要指定具体的参数名,mybatis会根据_parameter来指代这个参数,如果使用多个参数则需要在接口定义中使用@Param,当然这个参数类型还可以是java类,如User,在sql语句中直接使用该类的属性传值,如User类的uname属性等。nn在if test中,如果要使用变量则...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python教程全局变量 网页里怎么制作课程表

相似问题