c题目17:写一个swap函数,可以交换2个整数变量的值。(分别用普通方式和指针方式实现,对比结果)
2023-12-15 08:33:49
每日小语
我坐着,观望世界上所有的忧患,所有的压迫和耻辱···看着,听着,一声不响。——惠特曼
自己思考
?最近这段时间新的感悟似乎也没有,但我发现我和别人的思想越来越不同,只能跟极少数人产生共鸣,我还做不到一声不响,我还是会讲出来,可能再过几年我会一声不响。
普通方式?emmm,怎么办这个我似乎不会,我先写指针方式,因为刚刚学完。
swap(int*p1, int*p2) {
int t;
t=*p1;
p1=*p2;
p2=t;
}
刚学完就不会写,问题1:在该函数里设置的变量是否算临时变量?需要!
赋值后前面的*要不要省略?需要!
所以这个代码有问题,只要是指针就得带*。
最终代码(指针)
#include <stdio.h>
void swap(int*p1, int*p2) {
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
int main() {
int a,b;
printf("输入第一个整数:");
scanf("%d",&a);
printf("输入第二个整数:");
scanf("%d",&b);
//
swap(&a,&b);//这里传入参数有问题啊,不能直接带入上面的,得自己赋值才可以,牢记
printf("交换后的数为%d,%d",a,b);//语法问题,这样完全可以
return 0;
}
这次写的就很舒畅哈哈。撒花花~
忘记还有普通写法,普通我想就是copy一下,但不能改变原来的值,最后也可以达成目的。
#include <stdio.h>
void swap(int p1, int p2) {
int c,d;
c=p1;
d=p2;
printf("交换后的数为%d,%d",d,c);
}
int main() {
int a,b;
printf("输入第一个整数:");
scanf("%d",&a);
printf("输入第二个整数:");
scanf("%d",&b);
swap(int a,int b);//这里传入参数有问题啊,不能直接带入上面的,得自己赋值才可以,牢记
return 0;
}
还是传入参数,有黄线,我直接不要了。
最终代码(普通)
#include <stdio.h>
int main() {
int a,b,c,d;
printf("输入第一个整数:");
scanf("%d",&a);
printf("输入第二个整数:");
scanf("%d",&b);
c=b;
d=a;
printf("交换后的数:%d,%d",c,d);
return 0;
}
撒花花,个人目前觉得指针有点无用欸。甚至我这个还可以再简化。
#include <stdio.h>
int main() {
int a,b;
printf("输入第一个整数:");
scanf("%d",&a);
printf("输入第二个整数:");
scanf("%d",&b);
printf("交换后的数:%d,%d",b,a);
return 0;
}
就这样啦,撒花花~
文章来源:https://blog.csdn.net/qq_74324126/article/details/134967260
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!