Loading... 啊!啊!啊!开始看见这题心想简单的亿批,不就是交换a,b两数据吗?指针yyds,于是我刚敲着敲着发现不对劲,指针需要指向才可以使用,如果没有指向就是一个野指针,危害之大,于是为了在不借助第三变量前提下,我为指针开辟了内存空间,然后赋值,赋值好了;问题来了,怎么交换两指针的指向数据呢?在想了许久如果不借助第三变量,交换地址必须使用第三变量,此路行不通,那咋办,只有交换两指针指向的值了,问题依旧。艹究竟怎么实现呢?想啊,想啊!我想到了度娘。它给了我答案:加减乘除。无语子。。。。。。。。。。。。。学了那么近一个月的C语言把最基本的东西忘记了。 于是实现如下: ```C #include<stdio.h> #include <stdlib.h> int main () { int *a = malloc ( sizeof ( int )) , *b = malloc ( sizeof ( int ) ) ; *a = 5 ; *b = 10 ; *b = *b / *a ; *a = *a * *b ; *b = *a / *b ; printf ( "a = %d b = %d" , *a , *b ) ; } ``` 利用指针开辟内存空间,利用乘除间接交换两值。 最后修改:2021 年 05 月 25 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果文章有用,请随意打赏。