指针

#include<stdio.h>
main()
{ int a[5]={2,4,6,8,10}, *p , **k;
p=a; k=&p;
printf("%d ",*(p++));
printf("%d\n",**k);
}


//*p++先进行*p的操作,然后是p++,所以*p++的结果是数组的第一个元素,即2

//k的取值是p的地址,当运行了p++以后,p指向的是数组a的第二个元素地址,所以为4

 

 

 

 

 

 

 

 

#include<stdio.h>

void sort (int a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{
t=a[i];a[i]=a[j];a[j]=t;}
}
void main()
{
int i,s[10]={3,14,8,2,15,7,12,3,11,4};
sort(s+2,4);

for(i=0;i<10;i++)
printf("%5d",s[i]);
printf("\n");
}
请问这里的函数调用中的sort(s+2,4);
谁能帮我解释一下啥


数组名当函数参数时候,数组名退化为指针,

从数组第三个开始的后面4个数的排序

s+2=s[2]


s+2<=> &s[2]

posted @ 2014-08-09 19:37  2014acm  阅读(136)  评论(0编辑  收藏  举报