我应该使用指针来交换数组中的整数。它可以编译,没有错误或警告,并且可以运行,但不会交换整数。任何的意见都将会有帮助!!!

这是测试人员:

#import <stdio.h>

void swap( int ary[] );

int main(  int argc, char*argv[] )
{
    int ary[] = { 25, 50 };
    printf( "The array values are: %i and %i \n", ary[0], ary[1] );
    swap( ary );
    printf( "After swaping the values are: %i and %i \n", ary[0], ary[1] );

    return 0;
}

这是交换函数:
void swap( int ary[] )
{
    int temp = *ary;
    *ary = *(ary + 1);
    *ary = temp;
}

运行后将显示以下内容:
The array values are: 25 and 50
After swaping the values are: 25 and 50

最佳答案

我讨厌破坏这一点,但它看起来像是错别字。

在交换功能中:

*ary = temp;

应该:
*(ary + 1) = temp;

编辑:有没有原因,您不使用数组表示法?我认为这样的事情会更清晰一些:
int temp = ary[0];
ary[0] = ary[1];
ary[1] = temp;

关于c - 使用指针交换int数组值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1670821/

10-12 17:07