求助啊!!!C语言指针问题!!!
发布网友
发布时间:2022-04-27 04:39
我来回答
共1个回答
热心网友
时间:2022-06-26 08:49
一、void sort(int *x,int n),void sort(int x[],int n)的意思是一样的
在形参中:int *x ,int x[]的意义差不多,
相同点:x都代表一个地址
不同点:int *x中,x是个指针变量,可以做自增减运算,如:x++ , x-=1等,还可以象数组一样来引用数据,如:x[1], x[5]
而int x[]说明x是个数组名 , 不能做自增减运算,但可以通过 x+1,x+2等方法来访问数组数据。当然也可象数组一样来引用数据。
二、
k=i;//当前数的位置
for(j=i+1;j<n;j++)
if(*(x+j)>*(x+k))
k=j; //比当前数大的那个数的位置
从当前位置向后找到一个比当前数大的数,记下它的新位置k
三、if(k!=i)
如果找到一个比当前数大的数,k会变的(k=j),如果没有找到k不会变,k还是等于i
如果找到了新数(k != i ),就进行交换追问交换之后,由于K=J了是不是,x[k]就跑到x[i]前面去了呢?
追答是的,x[k] 与 x[i] 进行了位置交换