搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 传值和传址的问题
标题:
传值和传址的问题
只看楼主
大张宇
等 级:
新手上路
帖 子:6
专家分:0
注 册:2018-3-7
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:3
传值和传址的问题
void swap2(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int main(void)
{
int x = 3, y = 5;
swap2(&x, &y);
printf("%d %d\n", x, y);
}
指针参数为什么能够访问和修改主调函数中对象的数值?
搜索更多相关主题的帖子:
传值
传址
void
int
temp
2018-03-09 10:21
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
2
楼
得分:10
指针以地址来表现,地址不能复制、是唯一的。
2018-03-09 10:45
Jeyyion_han
等 级:
职业侠客
威 望:
4
帖 子:207
专家分:301
注 册:2018-1-22
第
3
楼
得分:10
void swap2(int *a, int *b)
如果这里面的形参不是指针,而是void swap2(int a, int b)
虽然你再swap2中数值交换了,但是地址没换,返回到主函数中还是不会变的
你可以在swap2函数和主函数中都printf一下,打印出来自己想一想就明白了。
2018-03-09 13:30
大张宇
等 级:
新手上路
帖 子:6
专家分:0
注 册:2018-3-7
第
4
楼
得分:0
我自己答一波吧!二楼说的对,我补充一下:指针传参时传递的是地址,此时形参和实参的地址是一致的,此时形参交换就相当于实参交换。以上
2018-03-09 20:19
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-485113-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.921174 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved