C语言高手帮一下忙

#include<stdio.h>voidsortA(int*p,intn);voidswap(int*px,int*py);intmain(void){inta[100... #include<stdio.h>
void sortA(int *p, int n);
void swap(int *px,int *py);
int main(void)
{
int a[100],i,n;
while (scanf("%d", &n) != EOF&&n<100)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sortA(a, n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
return 0;
}
void sortA(int *p, int n)
{
int d,t;
for(d=1;d<n;d++)
for(t=0;t<n-d;t++)
if( p[t] >p[t+1])--------------------------------------------为什么这里不用加*
swap(&p[t],&p[t+1]);
}
void swap(int *px,int *py)
{
int c;
c=*px;---------------------------------------------------为什么这里要加*
*px =*py;
*py=c;
}
展开
 我来答
kaixingui2012
2012-06-17 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:7778万
展开全部
if( p[t] >p[t+1])--------------------------------------------为什么这里不用加*
这是数组元素的引用,采用中括号加数组元素下标,实现引用。
当然,也可以按指针方式引用:if ( *(p+t) > *(p+t+1) )
*操作符是对地址操作的,用来对该地址中的数据进行赋值或取值。

c=*px;---------------------------------------------------为什么这里要加*
见上面。
追问
调用自定义的函数的时候
函数定义 void sortA(int *p, int n)
函数调用 sortA(a, n);
---------------------------------------------------他表示的意思是不是 *p=a ?
lyp2571029
2012-06-17 · TA获得超过114个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:259万
展开全部
1、 if( p[t] >p[t+1])--------------------------------------------为什么这里不用加*(因为p[t]已经代表指针了所以不用加“*”)
2、c=*px;---------------------------------------------------为什么这里要加*(swap的时候必须要用指针,要不然会出错的……所以必须加*)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦麦only
2012-06-17
知道答主
回答量:24
采纳率:0%
帮助的人:21.8万
展开全部
p[t]>p[t+1]相当于让指针移动,比较首地址指向的值和下一个地址指向的值,以此类推;
而c=*px;是要给c赋值,自然要加*号,只有这样子才表示该指针所指向的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
halasperanza
2012-06-17 · 超过10用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:48.6万
展开全部
C语言最基本的使用...这不用高手来解答吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式