69,336
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int main(int argc, char *argv[])
{
int a=1,b=2;
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
system("PAUSE");
return 0;
}
结果为a=2,b=1。。
#include <stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void main()
{
int a=3,b=5;
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
system("PAUSE");
}
构造方法只能以指针的为形参,void swap(int a,int b){}这样是换不了的。。不知道你是怎么换的。。我的编译器没反应。。只能以指针为参,变量地址为实参。。
#include <stdio.h>
void swap1(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void swap2(int *a, int *b)
{
*a = (*a) + (*b); // sum = a + b;
*b = (*a) - (*b); // b = sum - b; = a
*a = (*a) - (*b); // a = sum - b; = sum - a
}
void swap3(int *a, int *b)
{
*a = (*a) ^ (*b); // sum = a ^ b;
*b = (*a) ^ (*b);
*a = (*a) ^ (*b);
}
void swap4(int a[], int b[])
{
int tmp;
tmp = a[0];
a[0] = b[0];
b[0] = tmp;
}
int main(void)
{
int m = 5;
int n = 9;
printf("before swap data m: %d, n: %d\n", m, n);
swap1(&m, &n);
printf("after swap data m: %d, n: %d\n", m, n);
swap2(&m, &n);
printf("after swap data m: %d, n: %d\n", m, n);
swap3(&m, &n);
printf("after swap data m: %d, n: %d\n", m, n);
swap3(&m, &n);
printf("after swap data m: %d, n: %d\n", m, n);
return 0;
}
#include <stdio.h>
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void main()
{
int a=3,b=5;
swap(a,b);
printf("a=%d,b=%d\n",a,b);
}
#include <stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void main()
{
int a=3,b=5;
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
}