C语言中要实现交换两个数的值,可以有很多种方法,具体如下所述. 不使用中间变量: // 异或, a^=b^=a^=b; a ^= b; b ^= a; a ^= b; // 加减 a = a + b; b = a - b; a = a - b; // 乘除 a = a * b; b = a / b; b = a/ b; 使用中间变量: // 需临时空间 temp = a; a = b; b = temp; 正如你所想的那样,上面所示代码只是描述了交换两个数的值的思想,在你实际使用时,还有诸多地方
#include<stdio.h> int main() { //交换两个数的值 // 方法一 可读性最好 ; ; int temp ; temp = a; a = b; b = temp; printf("a = %d, b = %d\n",a, b); //方法二 ; ; c = d - c; d = d - c; c = d + c; printf("c = %d, d = %d\n",c, d); // 方法三 ; ; e = e ^ f; f
1.直接使用算术运算法交换 先把两个数的和赋值给其中一个,然后做减法.例如num1=num1+num2; 此时num2(交换之后)就等于num1减去num2:废话不多说,直接上代码 public class Demo{ public static void main(String[] args){ int a = 10; int b = 20; a = a + b;//此时a=30 b = a - b;//此时b=10 a = a - b;//此时a-b为30-10 System.out.pri
#include <iostream> using namespace std; /*值传递,局部变量a和b的值确实在调用swap0时变化了,当结束时,他们绳命周期结束*/ void swap0(int a, int b) { int tem = a; a = b; b = a; } /*没有初始化指针就开始用,该函数是有问题的*/ void swap1(int *a, int *b) { int *tem; /*注意tem没有分配内存*/ *tem = *a; *a = *b; *b = *
今天翻看微信上有关Java技术的公众号时,看到了一篇关于Java中值传递的问题,文章讨论了在Java中调用函数进行传参的时候到底是值传递还是引用传递这个面试时会问到的问题.之前也接触过类似的问题,但只是知道是值传递,具体到为什么,一直不是太清楚.今天看了一下,算是明白了,写个博客记录一下. 首先先声明一下,在Java中函数传参是值传递,不是引用传递.要弄清楚这个问题之前要先弄清楚什么是值传递,什么是引用传递. 值传递(pass by value):是指在调用函数时将实际参数复制一份传递到函数中,
#include <iostream> template<typename T> void exchangeTwoNumber(T &t1, T &t2): void test(); int main() { , b = ; double q = 10.1, w = 20.2; char z = 'z', x = 'x'; std::cout << "交换前的 a = " << a << ", b =