| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 369 人关注过本帖
标题:指针函数参数的问题
只看楼主 加入收藏
苍天的蓝悠
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
快速回复:指针函数参数的问题
数据加载中...
 
   



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

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