|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
t=*pa;
*pa=*pb;
*pb=t;
这段代码来自小甲鱼的指针课后作业
我搞不懂 这里面的层层关系及原理
我的理解是pa指向的地址 赋值给t,
pb指向的地址赋值给*pa
t又赋值给了*pb
这是干啥用的呀
#include <stdio.h>
int main(void)
{
int a, b, c, t;
int *pa, *pb, *pc;
printf("请输入三个数:");
scanf("%d%d%d", &a, &b, &c);
pa = &a;
pb = &b;
pc = &c;
if (a > b)
{
t = *pa;
*pa = *pb;
*pb = t;
}
if (a > c)
{
t = *pa;
*pa = *pc;
*pc = t;
}
if (b > c)
{
t = *pb;
*pb = *pc;
*pc = t;
}
printf("%d <= %d <= %d\n", *pa, *pb, *pc);
printf("%d <= %d <= %d\n", a, b, c);
return 0;
}
本帖最后由 jackz007 于 2022-10-27 20:04 编辑
- #include <stdio.h>
- void swap(int * pa , int * pb)
- {
- int t ;
- t = * pa ; // 将 pa 所指向内存中的整型数赋值给整型变量 t;
- * pa = * pb ; // 把 pb 所指向内存中的整型数写入 pa 所指向内存;
- * pb = t ; // 将整型变量 t 的值写入 pb 所指向内存
- }
- int main(void)
- {
- int a = 55 , b 300 ;
- swap(& a , & b) ; // a、b 值互换
- printf("a = %d , b = %d\n" , a , b) ; // 打印 a = 300 , b = 55
- }
复制代码
|
|