| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:指针变量问题
只看楼主 加入收藏
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
结帖率:100%
收藏
 问题点数:0 回复次数:9 
指针变量问题
现在有一个例子其中部分没看懂!
#include<stdio.h>
void main()
{
    void swap(int *p1, int *p2);
    int a,b;
    int *pointer_1,*pointer_2;
    scanf("%d,%d",&a,&b);
    pointer_1=&a,pointer_2=&b;
    if(a<b) swap(pointer_1,pointer_2);
    printf("\n%d,%d\n",a,b);
}
void swap(int *p1, int *p2)
{
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}


其中1、if(a<b) swap(pointer_1,pointer_2);  中为什么不可以用*pointer_1,*pointer_2呢?  而函数swap中用的是*p1,*p2呢?
2、为什么这个函数用的是指针却把a,b的数值交换了?
3、为什么我在输出结果,比如输入23  52   结果却是23,-858993460 这个结果呢? 其他数字输入最后一个都是-858993460
用的是VC++ 6.0的编译器

[[it] 本帖最后由 小小熊宝宝 于 2008-9-2 10:59 编辑 [/it]]
搜索更多相关主题的帖子: 指针 变量 
2008-09-02 10:57
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
收藏
得分:0 
有人吗?

欢迎加入C语言交流群:43287755
2008-09-02 11:31
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
你哪不懂,函数定义还是指针定义还是其他的?也不知道你认真看书没有,还有你的书很老。

without further ado, let’s get started
2008-09-02 11:36
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
收藏
得分:0 
恩,先看看谭浩强的书,然后再看其他的
问题上面写的很清楚啊,帮忙回答一下

欢迎加入C语言交流群:43287755
2008-09-02 11:50
yk19880525
Rank: 1
来 自:江汉大学
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-5-5
收藏
得分:0 
你的问题很幼稚  建议你自己把指针这一章的内容多看几遍  一些定义方面的问题都没有搞清楚
2008-09-02 12:11
yk19880525
Rank: 1
来 自:江汉大学
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-5-5
收藏
得分:0 
回复 1# 小小熊宝宝 的帖子
你的致命错误在
 scanf("%d,%d",&a,&b);
这里由一个逗号
你要输入
23,52
这样应该明白勒吧?
2008-09-02 13:21
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
1、if(a<b) swap(pointer_1,pointer_2);  中为什么不可以用*pointer_1,*pointer_2呢?  而函数swap中用的是*p1,*p2呢?

函数调用时```参数的类型要一样```
pointer_1,pointer_2是实参``类型已经声明``为int *
如果这个时候用*pointer_1,*pointer_2``那么将访问这两个指针的内容``
得到的是int

swap中用的P1,P2是第一次出现``所以要声明```所以用的是
int* p1 ,int* p2. 这个是声明定义``

2、为什么这个函数用的是指针却把a,b的数值交换了?

通过访问内存来改变内存的值``这明明就是这个函数的功能``建议你再看一下
值传递的内容


3、为什么我在输出结果,比如输入23  52   结果却是23,-858993460 这个结果呢? 其他数字输入最后一个都是-858993460

这就是你的问题了``
你的输入格式是 d%,d%  你却用空格``

当然要出问题``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-09-02 13:45
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
收藏
得分:0 
谢谢楼上的,明白了

欢迎加入C语言交流群:43287755
2008-09-02 14:14
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
死了都要C 的头像实在是太好看了,有没有大一点儿的?我拿来作桌面……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-02 16:36
lqyppp
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-12
收藏
得分:0 
感谢各位了
学习了不少的内容
2008-09-02 22:08
快速回复:指针变量问题
数据加载中...
 
   



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

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