| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:指针问题,很简单的
只看楼主 加入收藏
kinghhh
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2010-10-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
指针问题,很简单的
#include<stdio.h>
int sort(int *p,int n)
{int i,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-1;j++)
if(*(p+j)<*(p+j+1))
{t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}
}
void main()
{int a[10],i;
printf("排序前:");
for(i=0;i<10;i++)
scanf("%d ",&a[i]);
sort(a,10);
printf("排序后:");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
能不能解释一下这样就能实现排序了呢,函数里明明是指针在比大小,最后输出是数组a,为什么就排序排好了呢?
2011-05-08 16:21
为我留住记忆
Rank: 4
来 自:北京
等 级:业余侠客
帖 子:130
专家分:226
注 册:2011-4-30
收藏
得分:5 
指针指向的是地址,开辟了新的空间,地址在交换


  应该是这样

学习c是为了自己更强大。。。
2011-05-08 16:23
懂也不懂
Rank: 4
等 级:业余侠客
威 望:2
帖 子:73
专家分:224
注 册:2010-12-1
收藏
得分:10 
首先数组其实你可以理解成指针,其次你说的指针在比大小,其实是指针所指的数据域的值在比大小,*你可以认为是取值.
2011-05-08 16:25
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
通过指针传递给函数的是这个数组的首地址,而不是副本。这与一般的形参不同。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-08 16:47
chenzp
Rank: 2
等 级:论坛游民
帖 子:3
专家分:15
注 册:2010-12-30
收藏
得分:0 
for(j=0;j<n-1;j++)
这行的1应该改为i吧,不知又没有错
2011-05-08 20:18
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
指针指向的是地址???????????  二级指针?

你理解的真厉害   数组再传递的时候会退化为指针  

函数的传递永远是单向的值传递  永远不会错  没了

                                         
===========深入<----------------->浅出============
2011-05-08 20:22
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
if(*(p+j)<*(p+j+1))   这难道是指针在比大小吗?
t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t     我认为就不是指针在比大小,而是通过对指针所指向的值的大小来改变指针的指向!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-09 08:26
没有注册过的
Rank: 2
来 自:广西
等 级:论坛游民
帖 子:22
专家分:42
注 册:2011-4-16
收藏
得分:0 
个人理解是:传的是参数是是指针,然后通过函数对存储空间(单个)内的值进行交换,
这个没必要用指针的吧~!
简单问题用指针反而会增加出错概率~!
纯属个人理解~!

就是想学~!
2011-05-09 21:04
xiangqiu1986
Rank: 2
等 级:论坛游民
帖 子:79
专家分:95
注 册:2011-5-5
收藏
得分:0 
那其实就是指针所指向的内容在比较大小,而且数组在主函数和子函数中都是共用同一个空间,所以在子函数中排列了顺序在主函数中也同样是排了顺序!

学无止境!
2011-05-09 21:12
快速回复:指针问题,很简单的
数据加载中...
 
   



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

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