标题:指针函数参数的问题
只看楼主
苍天的蓝悠
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2015-7-23
结帖率:100%
已结贴  问题点数:10 回复次数:2 
指针函数参数的问题
我的答案是C,正确答案是B,不是很理解
#include<stdio.h>
int *f(int *s,int *t)
{
    int *k;
    if(*s<*t) {k=s;s=t;t=k;}   //交换*s和*t的值
    return s;
}
main()
{
    int i=3,j=5,*p=&i,*q=&j,*r;
    r=f(p,q);
    printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);
}
则程序的输出结果是
A.3,5,5,3,5
B.3,5,3,5,5
C.5,3,5,3,5
D.5,3,3,5,5
搜索更多相关主题的帖子: 正确答案 
2015-08-17 18:07
实际应用
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:89
专家分:341
注 册:2015-5-30
得分:10 
主要是,{k=s;s=t;t=k;} 交换的是指针本身的值,即地址值
而指针本身在函数里是形参,所以返回不到main里,
所以在main里,还是指向以前的值,
也就是B
2015-08-17 21:46
柳逸尘
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:131
注 册:2015-8-10
得分:0 
int i=3,j=5,*p=&i,*q=&j;中  *p=&i;意思是指针p取i值,也就是说把i的值辅助给p,所以i=3,*p=3;j=5,*q=5;*r如2楼所说的
2015-08-18 09:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-456493-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.105316 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved