永发信息网

请大师详细讲解一下,谢谢啦!#include<stdio.h> void findmax(int *s,int t,int *k) { int p;

答案:4  悬赏:30  手机版
解决时间 2021-04-07 05:35
请大师详细讲解一下,谢谢啦!#include<stdio.h> void findmax(int *s,int t,int *k) { int p;
最佳答案
准确地说,LZ没有搞清楚函数参数的传递方式。C语言中,函数参数的传递方式有两种,值传递和指针传递(C++多了个引用传递)
值传递简单的可以认为传进来的是一个普通变量,指针传递可以理解为传进来的是个指针变量。
值传递的特点是,在函数内,对参数变量的值进行修改,不影响到函数外
例如
void set(int a){
a = 2;
}
void main(){
int a = 1;
set(a); //虽然在函数里改变a,但是在main中a的值仍然是1
}
指针传递就不一样了
void set(int *a){
*a = 2;
}
void main(){
int a = 1;
set(&a); //函数里的改变影响到main中a的值,此时a为2
}
至于为什么,这就关系到作用域,本质上是指针和内存的相关知识了,建议LZ自己查资料吧
全部回答
你就不知道自己动手试一下吗?
4 98
0 12
你的问题是对指针和引用没有弄明白,其实指针和应用都是对原来的内存进行的操作。&k和k的区别在于,&k对你传入的参数进行了操作,而k只是将你的实参的值赋给了k,真正操作的是k。原来的实参并没有发生变化。希望楼主能懂
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何控制自己唱歌的音量
哪位大神有 gptm04. 09. 17. 26. 求!!!
广州与四川的教材是否一样?是人教版吗?
关于焊接咬边怎样处理
联想ideapad 710s系列,处理器i5 7200U和i7 6
请问安顺市在哪里
鲁大师检测硬盘有三处损坏,4万多处瑕疵,4000
岳钟琪简介 清朝名将岳钟琪一生都做过什么事
描写女孩的诗句
大连市工商行政管理局高新技术产业园区分局(
五菱宏光新车五档很紧难挂怎么回事
改装车的车轮的直径与速度有什么关系?
举报贷款诈骗电话是多少?
新疆广汇物业管理有限公司桂林分公司商贸城客
自己一个人出去离家远的地方工作而且什么也不
推荐资讯
避免滚筒干燥是什么意思
野猪糟蹋粮食怎么办
徐州坐火车到连云港,住虚沟的话要在哪个火车
2018塑料粉碎能做吗?
现在创业在20万能做什么
请问您midas中怎么输出桥梁内力图啊?我已经
马丁靴配上衣
修车要学多久?
父亲去世可我女儿又要嫁我该怎么办?
丹阳市功成塑料厂地址在什么地方,想过去办事
振国道/光明街(路口)在什么地方啊,我要过去
姐姐们你们小背心肩带掉了,但是附近有人不好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?