
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;
} 展开
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;
} 展开
4个回答
展开全部
if( p[t] >p[t+1])--------------------------------------------为什么这里不用加*
这是数组元素的引用,采用中括号加数组元素下标,实现引用。
当然,也可以按指针方式引用:if ( *(p+t) > *(p+t+1) )
*操作符是对地址操作的,用来对该地址中的数据进行赋值或取值。
c=*px;---------------------------------------------------为什么这里要加*
见上面。
这是数组元素的引用,采用中括号加数组元素下标,实现引用。
当然,也可以按指针方式引用:if ( *(p+t) > *(p+t+1) )
*操作符是对地址操作的,用来对该地址中的数据进行赋值或取值。
c=*px;---------------------------------------------------为什么这里要加*
见上面。
追问
调用自定义的函数的时候
函数定义 void sortA(int *p, int n)
函数调用 sortA(a, n);
---------------------------------------------------他表示的意思是不是 *p=a ?
展开全部
1、 if( p[t] >p[t+1])--------------------------------------------为什么这里不用加*(因为p[t]已经代表指针了所以不用加“*”)
2、c=*px;---------------------------------------------------为什么这里要加*(swap的时候必须要用指针,要不然会出错的……所以必须加*)
2、c=*px;---------------------------------------------------为什么这里要加*(swap的时候必须要用指针,要不然会出错的……所以必须加*)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p[t]>p[t+1]相当于让指针移动,比较首地址指向的值和下一个地址指向的值,以此类推;
而c=*px;是要给c赋值,自然要加*号,只有这样子才表示该指针所指向的值。
而c=*px;是要给c赋值,自然要加*号,只有这样子才表示该指针所指向的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言最基本的使用...这不用高手来解答吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询