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

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

发布网友 发布时间:2023-10-10 18:10

我来回答

5个回答

热心网友 时间:2024-11-30 14:12

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

热心网友 时间:2024-11-30 14:13

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

热心网友 时间:2024-11-30 14:13

{

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

热心网友 时间:2024-11-30 14:14

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

热心网友 时间:2024-11-30 14:14

可以全局变量,或是用返回值,共用指针,对象
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ipad输入键盘变小了 金黄色的鱼肉 这是鲶鱼吗?为啥有八根胡子。能吃不?味道咋样。。。 可塑橡皮有毒害吗可塑橡皮有没有毒害 小米手机应用锁密码忘了怎么解除还不想恢复出厂模式 欢乐斗地主得到的包箱里开的那个宝宝去那里领 混凝土外加剂的使用方法 混凝土外加剂使用注意事项 为什么观众喜欢在直播间买东西? 梦见别人开口向我借钱 更换发动机发动机号会变吗 空气源热泵故障代码26z是什么故障! 我老公,说我屁话多,我怎么回他 《脸色苍白的伙伴》初中时候看过的一篇小说,貌似是教材,作者沈石溪... 我老公以前不说粗话的,对我很尊重,可是现在不一样了,动不动我... 老公会在乎老婆的第一次不是给他的吗?10 佳兆业君汇上品这个楼盘认筹时间多久,推出来的面积及价格是多少?_百度... 男友不让我在外面叫他老公!为什么?2 江苏省沛县栖山镇李楼在哪 什么是长尾效应?只是听说?!9 沛县栖山镇社保卡里有80老人的养老金吗? 大门用纱窗可不可以化解开门见灶? 购买股票多久可以分红持股多久可以分红 我想用发光二极管直接接220v电,电阻需要加几个?怎么操作? 男士牛仔外套搭配什么包3 上海虹桥1号售楼中心电话是多少? 安卓系统的手机如何切换输入法?100 2015年广西考生文科二本420分能读什么院校?求帮帮忙!谢...2 胸部下垂怎么办!!急啊 签解~~谁能进来帮忙解释下!1 月老太忙,你不积极,恐怕月老忘是什么意思 c++中一个函数引用另一个函数再在引用的函数后加上继续运行的... 车里有鱼腥味怎么办20 光腾空气源热泵故障代码12怎么处理? 广西2010文科469可在广西可以读什么好点的二本大学? 中国工商银行股份有限公司乌拉特中旗支行怎么样? 广西文科 399能上什么大学 在乌拉特中旗的长城遗址有什么结构? 儿趣遂川麻将用手机号登陆后有没有坏的影响? Android安卓手机如何切换输入法6 安卓手机输入法怎么设置 安卓手机输入法设置正确步骤26 oppo手机微信微脉输入法怎么切换别的输入法?1 安卓手机输入法默认输入怎么切换成中文 输入法版本是v2.0的...22 魔兽PTPT的问题5 沛县的邮编是什么?19 最近追完了 天真遇到现实~~~很不喜欢结局~~~唉真心的喜欢天真和成铭在一... 本田雅阁换挡杆释放按钮换挡时总按可以吗11 本田雅阁档位锁死怎样解决?1 杨天真为什么跟成毅离婚 疯疯癫癫的性格是怎样的性格?17 疯疯癫癫的女生有哪些表现?38