没什么其他方法了,你几乎已经列举完了,C语言的语法就只有这么多,怎么操作也离不开变量和指针还有函数,那个题目的意思应该就是想让你使用指针在函数间传值
还有第三种方法实际上并没有很好,看似不需要创建临时变量,实际上代码可读性并没有很好,性能也一般,普适性也差,在编译器开启优化的前提下,方法一创建的临时变量能直接被优化掉,直接使用寄存器交换变量,在一些场景下性能优于方法二和方法三
一种比较hack的方法是,直接交换要输出的变量位置就好了printf(xx,a,b)
->printf(xx,b,a)
,什么交换变量都是不存在的
不过C++标准库中有个很好的方法(只能在C++中使用),std::swap
,利用移动语义避免了临时变量的构造开销(对基本类型来说没什么差别),使用起来比较优雅,如果你以后学C++的话可以看看
还有就是Python交换变量的写法,相当漂亮,x,y = y,x