搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 小白一只,请教一个问题!
标题:
小白一只,请教一个问题!
只看楼主
四月签儿
等 级:
新手上路
帖 子:2
专家分:0
注 册:2016-9-3
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:5
小白一只,请教一个问题!
#include<stdio.h>
void silly(int x);
int main()
{
int x,y;
x=10;
y=11;
silly(x);
silly(y);
printf("x=%d\ny=%d\n",x,y);
return 0;
}
void silly(int x)
{
x=2*x;
}
为什么这个程序运行结果是10和11而不是20和22
搜索更多相关主题的帖子:
return
2016-09-03 21:33
ehszt
等 级:
贵宾
威 望:
40
帖 子:1728
专家分:3216
注 册:2015-12-2
第
2
楼
得分:7
不能通过形参改变一个变量的值,形参只是变量的一个拷贝,要通过调用函数的形式改变变量的值,只能通过指针。
2016-09-03 21:43
ehszt
等 级:
贵宾
威 望:
40
帖 子:1728
专家分:3216
注 册:2015-12-2
第
3
楼
得分:0
以下程序供参考:
#include<stdio.h>
void silly(int *x);
int main()
{
int x=10,y=11;
int *a,*b;
a=&x;
b=&y;
silly(a);
silly(b);
printf("x=%d\ny=%d\n",x,y);
return 0;
}
void silly(int *x)
{
*x=2*(*x);
}
2016-09-03 21:44
四月签儿
等 级:
新手上路
帖 子:2
专家分:0
注 册:2016-9-3
第
4
楼
得分:0
理解了 谢谢大神
2016-09-03 22:00
平常心q
等 级:
黑侠
威 望:
7
帖 子:120
专家分:550
注 册:2016-3-31
第
5
楼
得分:7
形参的改变不能影响实参的变化
2016-09-05 22:20
书生牛犊
来 自:星夜征程
等 级:
贵宾
威 望:
10
帖 子:1101
专家分:5265
注 册:2015-10-27
第
6
楼
得分:7
我喜欢这么理解,C语言的函数调用,所传进去的东西其实只是值,在函数内部声明了几个变量,恰好和外面要传递进来的东西类型相同,然后把外面的那些值复制给了函数参数表而已。
为什么当我们要改变函数外面的数据的时候要传递他的地址进来,其实是因为复制了外面变量的地址,复制了地址,不管你这个地址拿到哪里去用,都是可以直接访问到这个地址的位置,那么我们才可以访问到外面那个变量进而修改他的值。
打个比方,变量是一个房子,这个房子有个位置叫做指针,调用函数的时候其实只是复制了一个一摸一样的房子到函数里的某个位置去,在函数里面如果你对房子就行改建,怎么改都只能是里面这个房子,改不到外面的那个。如果调用函数的时候你传递的是某个房子的地址,那么这时候函数依然只是复制了一个一模一样的地址,只不过,你可以透过这个地址找到外面那座房子进而直接修改它。
φ(゜▽゜*)♪
2016-09-06 18:55
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-468467-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.336877 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved