|
发表于 2022-8-20 16:30:43
|
显示全部楼层
- #include <stdio.h>
- void reverseArray(int *a, int n)
- {
- int tmp = 0;
- for (int i = 0; i < arrLength/2; i++)
- {
- printf("%d - %d\n", a[i], a[arrLength - (i + 1)]);
- tmp = a[i];
- a[i] = a[arrLength - (i+1)];
- a[arrLength - (i + 1)] = tmp;
- }
- for (int i = 0; i < arrLength; i++)
- {
- printf("%d\n", a[i]);
- }
- }
- int main()
- {
- int a[5] = {1,2,3,4,5};
- reverseArray(a,sizeof(a)/sizeof(int) );
- return 0;
- }
复制代码
我改了一下,上来这样应该没问题,要不你编译下。
int arrLength = sizeof(a)/sizeof(int); //这里一直arrLength是2,百思不得其解。。。。
我觉得arrLength的值在函数void reverseArray(int a[])里面应该是1,我运行了下也是1,不是你说的2
记着一维数组是用int *a来接收的就可以了,函数形参是void reverseArray(int *a,int n) //int *a,接受数组的首元素的地址, n数组中的元素的个数 |
|