这是个数组反序函数。函数名 inv,有2个形式参数,int x[] 是一个数组 , int n 是该数组元素个数。void 型函数,无return 语句。
for(i=0i<n/2i++) 循环语句,循环到 数组长度的 一半。 第 i 个元素 与 j=n-1-i个元素交换 ,即 第一个元素与最后一个元素交换,第二个元素与倒数第2个元素交换,。。。循环到 数组长度的 一半时,就完成了 反序。反序结果由参数1带回去。
mian() 函数中的 反序函数 调用 语句inv(a,5) 这里的 a 是 main() 里的
局部量 a[5]={3,7,9,11,0}, 该数组元素个数是 5。这个 a, 与全局量 int a=100没有关系。
for(i=0i<5i++) printf("%d",a[i]) 输出反序后的结果。
一、这里的int *p=arr 这么写有两个意思,p前面的*表示p是一个指针变量,后面的=arr表示把此数组的首地址赋给指针变量p。这里的*只起表明变量类型的作用,而不是取地址符。如果你要分开写,应该写作:int *pp=arr 而不是*p=arr。
二、如果x是数组arr的首地址的指针,也就是arr[0]的地址,那么在x上加9就表示arr[9]的地址。
也就是说j指向arr[9],p指向arr[4].