*a和a[]有什么区别?

#include<stdio.h>#defineN9/**********found**********/voidfun(int*a,intn){inti,j,max,m... #include <stdio.h>
#define N 9
/**********found**********/
void fun(int *a, int n)
{ int i, j, max, min, px, pn, t;
/**********found**********/
for (i=0; i<n-1; i+=2)
{ max = min = a[i];
px = pn = i;
/**********found**********/
for (j=i+1; j<n; j++)
{ if (max < a[j])
{ max = a[j]; px = j; }
if (min > a[j])
{ min = a[j]; pn = j; }
}
if (px != i)
{ t = a[i]; a[i] = max; a[px] = t;
if (pn == i) pn= px;
}
if (pn != i+1)
{ t = a[i+1]; a[i+1] = min; a[pn] = t; }
}
}
main()
{ int b[N]={1,4,2,3,9,6,5,8,7}, i;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
fun(b, N);
printf("\nThe data after moving :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
}
为什么这里int *a ?inta[]为什么不行?
展开
 我来答
百度网友7b9e46d
2013-02-21
知道答主
回答量:30
采纳率:0%
帮助的人:7.1万
展开全部
int *a是定义一个指针在调用时指向数组b[]首地址,即整个数组b,这样就可以把整个数组b进行排序,a[]只表示数组中的某一个,并不能表示整个数组,可以把 *a 改成 &a,这样也可以表示整个数组了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-02-20
展开全部
*a是指针,a[]是数组;作形式参数时,*a传递主函数中b[]中的数值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
轮滑555
2015-10-06 · TA获得超过8497个赞
知道大有可为答主
回答量:2.6万
采纳率:33%
帮助的人:1797万
展开全部
如果单纯int *a和int a[]的区别的话,int *a为指向一个整形的指针。而int a[]为一个整形数组,而数组名为其第一个元素的首地址,他们一个是形参,一个是实参,形参指向实参的地址,上面的程序错了,和这两个参数没关系,将Fun含数的第二行改为for (i=0; i<n-1; i+=1)即可实现从大到小的排序。
1.
声明的时候不同
int *a; //没有给a分配地址 野指针
int a[5]; //a已经是数组的首地址了
2.
指针是变量 数组名是常量
int a[5];
int *p=a;

你是可以p+1,a+1 而且他们等效 ,
其他都一样, 本质就是储存地址 根据其类型算出偏移量进行偏移( 也就是p+几 )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我姐是恐龙
2013-02-21 · TA获得超过542个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:194万
展开全部
1.
声明的时候不同
int *a; //没有给a分配地址 野指针
int a[5]; //a已经是数组的首地址了
2.
指针是变量 数组名是常量
int a[5];

int *p=a;
你是可以p+1,a+1 而且他们等效 ,
但是 你p++可以 而a++肯定报错 因为数组名是常量 不能更改!

其他都一样啦 本质就是储存地址 根据其类型算出偏移量进行偏移( 也就是p+几 )
另 楼上代码中函数参数中int *a 可以改为int a[] 不会出错
我还特意试了 通过了

经验之谈 手工打造 望楼主采纳
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式