C++中如何使一个函数编辑在主函数的一个变量

如题... 如题 展开
 我来答
shine落翼之殇
2015-11-22 · 知道合伙人互联网行家
shine落翼之殇
知道合伙人互联网行家
采纳数:14 获赞数:1062
就读于安阳师范学院,13级在校生。

向TA提问 私信TA
展开全部
有这么几种方法:
1、把引用或指针做参数,传递给函数
2、全局变量(不推荐)
3、函数运行完直接返回给该变量
C++中,一般第一种比较常用,不过最好把不需要修改的变量设置为const,避免不必要的修改。还有函数的参数尽可能的用引用,其次是指针,一般除了内置类型不要用值传递,自定义类型用值传递会造成不必要的copy,浪费时间。
C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。最新正式标准C++于2014年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性。
Adol1111
2013-08-20 · TA获得超过948个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:326万
展开全部

没看懂意思,是在其他函数里改变主函数里的参数的某个值吗?

如果是的话,有这么几种方法。

  • 把引用或指针做参数,传递给函数

  • 全局变量(不推荐)

  • 函数运行完直接返回给该变量

C++中,一般第一种比较常用,不过最好把不需要修改的变量设置为const,避免不必要的修改。还有函数的参数尽可能的用引用,其次是指针,一般除了内置类型不要用值传递,自定义类型用值传递会造成不必要的copy,浪费时间。

如果是java等现代面向语言中,则不建议直接在函数中修改,一般会把传递的参数设置为常量,当需要修改时,选择需要修改的做一份拷贝,然后再修改,最后回传该值,这样比较安全,但也不够灵活,不过面向对象的编程语言中一般都采用这种良好的编程习惯...(Martin Flower的《重构》,还介绍了几种方法你可以看看)

追问
我的意思是说,在一个其他函数中改变主函数的某个变量,或者返回多个值。
我看了下你的回答,有个问题想问:如何使用引用;如何将引用或指针做参数,传递给函数
谢谢!
追答

举个例子:

void swap(int x,int y){//这个是值传递,但你会发现,x、y在主函数中没有变化
    int t=x;x=y;y=t;
}
void swap(int& x,int& y){//这个是引用传递,调用方式和上面一样
    int t=x;x=y;y=t;
}
void swap(int* x,int* y){//这个是指针传递
    int t=*x;*x=*y;*y=t;
}
int main(){
    int x=1,y=2;
    swap(x,y);//这个即可以算引用也可以算值传递,所以在定义函数时2种定义不能同时出现,否则编译器会认为有歧义,具体看参数是否有&
    swap(&x,&y)//这个是指针参数的调用
    return 0;
}

至于你说的返回多个值是不行,return只返回1个值。在java中一般会把多个返回值打包成数组或其他对象等等进行返回,这里牵涉到了代码重构的问题,你暂时不用去了解。C++中只要使用引用、指针就可以了。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WM_THU
2013-08-20 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3882万
展开全部
或者用引用传参也可以~子函数形参声明为引用,就可以使对参数的修改在子函数返回后仍有效了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亥凝思3q
2013-08-20 · TA获得超过313个赞
知道小有建树答主
回答量:400
采纳率:14%
帮助的人:171万
展开全部
将主函数的参数传给子函数,并将返回值传回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式