问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++一个函数怎么调用另一个函数中的参数?

发布网友 发布时间:2022-08-19 13:41

我来回答

5个回答

热心网友 时间:2023-10-24 16:10

  如果另一个函数中的参数是该函数的动态局部变量,那是不可能的,除非想点其他办法,比如说跟踪该局部变量生成的地址,并且在该局部变量的生存期内调用。但是这样我不知道有什么意义。
  如果另一个函数中的参数的变量是函数的局部静态变量static,那么也可以,不过得想点办法。那就是跟踪该静态变量初始化时的地址。由于静态变量都在全局数据区分配内存,不管是全局的还是局部的。那么只要找到其初始化时的地址就可以了,到时候直接在函数内操作这个变量的内存地址。
  如果另一个函数中的参数的变量不一定是局部变量的话,那么你可以定义为全局变量,这样的话就可以操作了。上面两种方式,我不知道有什么意义,除非搞crack的。

热心网友 时间:2023-10-24 16:11

一个函数,就象你的函数a其中的变量只在函数被调用时才生成和起作用,函数执行结束,变量p就失效了,所以它的值无法在函数执行后被保存。
如果想在函数执行结束后还能保存,需要在变量定义前加个“静态”的修饰,如:static int p;但这还是不能被函数以外的语句直接访问。
那么就需要将函数的值想办法传出来,或者直接将p的定义提到函数外成为全局变量。

热心网友 时间:2023-10-24 16:11

{

public:

A()

{

printf("In A::(). m_x=%d\n", m_x);

A(0);

printf("Out A::(). m_x=%d\n", m_x);

}

A(int x)

{

printf("In A::(int x). x=%d\n", x);

m_x=x;

}

private:

int m_x;

};

这里第11行的调用A(0);只是构建了一个A的临时对象,并没有调用A(int x)来初始化自己。其运行结果是:

点击(此处)折叠或打开
[root@tivu25 utcov]# ./UTest.out
In A::(). m_x=4268020
In A::(int x). x=0
Out A::(). m_x=4268020

可以看到尽管调用了A(0),m_x仍然没有改变,是4268020.
正确的方法是使用placement new:

点击(此处)折叠或打开
//A.h

#ifndef _A_H_

#define _A_H_

#include <stdio.h>

#include <new>

class A

{

public:

A()

{

printf("In A::(). m_x=%d\n", m_x);

new(this) A(0);

printf("Out A::(). m_x=%d\n", m_x);

}

A(int x)

{

printf("In A::(int x). x=%d\n", x);

m_x=x;

}

private:

int m_x;

};

#endif

热心网友 时间:2023-10-24 16:12

如果是一般函数,不能这么用,你可以把p定义为全局变量,就可以用。如果是c++,将这2个函数定义为成员函数,p为成员变量,也可以用

热心网友 时间:2023-10-24 16:12

可以全局变量,或是用返回值,共用指针,对象
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 急救,急救!!在中山大学眼科中心验光的时间要多长? 去医院验光一定要两天吗? 迷你世界4399账号被盗号后个人信息会泄露吗? 梦到别人送葱给我预示着什么 网上借钱怎么一个都没有通过?从这些方面找原因 为什么回民都那么有钱啊 牛羊肉这么贵还天天都吃 真是土豪 为什么回民吃羊肉不上火? 享甜奶茶加盟费是多少钱 装修信息哪里找?自己装修怎么找工人? 适合秋冬使用的洗发水推荐? 秋天用哪个牌子的洗发水? 纹完眉毛之后不接咖直接褪色是怎么回事?已经8天了褪完色了还是深怎么办? 梦见他回来看我,这代表什么意思? 剃头匠第3季出来了吗 一个讲述妖魔鬼怪的漫画,主角一个是 大叔叫廖凡,另一个叫串子,请问有谁知道,是什么漫画吗 剃头匠第三季在哪看 云师大附中2015高考排名有几人进前五十 云师大附中呈贡校区与云大附中星耀校区高中哪个更好? 师大附中净月校区一本升学率 云南师大附中2009届高考录取情况 带有参数的函数,如果通过函数指针调用。 500升的冰柜可以放多少斤的鸭脖 胶片红外摄影 华为p30手机为什么下载不了火币网? 跑步后性功能下降 什么水果去火最好 饮水机烧水的芯很脏,多烧几遍会不会干净 26个英文字母怎么读和拼写。 26个英文字母怎么打? 26个英文字母的大小写字母表 38KKK罩杯 到底是什么概念 怎么会有3个字母啊 魔塔中怎么打败真大魔王 新绝代双骄中如何打UJ大魔王 英雄无敌手游第六章大恶魔怎么打 新绝代双骄2 疯人院大魔王怎么过 小林怎么打败短笛大魔王? ……我想去意大利留学……不过家里没钱可以贷款吗 有房贷的房子可以抵押贷款吗?一定要看完 想去意大利留学,高三毕业,需要40万,银行可以贷款多少? 牙齿英语怎么读 牙齿英语是什么