我应该使用指针来交换数组中的整数。它可以编译,没有错误或警告,并且可以运行,但不会交换整数。任何的意见都将会有帮助!!!
这是测试人员:
#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/