C语言交换变量值的几种方法

第一种:使用中间变量

int a = 1, b = 2, c;

c = a;

a = b;

b = c;

printf(“%d,%d”, a, b);


第二种:

int a = 1, b = 2;

a = a + b;

b = a - b;

a = a - b;

printf(“%d%d”, a, b);

或者:

a = a * b;

b = a / b;

a = a / b;


第三种:

int a = 1, b = 2;

a ^= b;

b ^= a;

a ^= b;

printf(“%d,%d”, a, b);


int a = 1, b = 2;

b = (_int64)((_int64) a << 32 | (a = b)) >> 32;

printf(“%d,%d”, a, b);

时间: 2024-10-28 23:39:08

C语言交换变量值的几种方法的相关文章

JavaScript交换两个变量值的七种解决方案

前言 这篇文章总结了七种办法来交换a和b的变量值 1 2 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 1 2 3 4 var t; t = a; a = b; b = t; 首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了 交换变量值方案二 下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有

一.变量值的8种类型

1.变量值的8种类型 1.学习目标:知道8种变量类型.和相关变量一些知识 变量的值有8种类型:整形,浮点,字符串,布尔,数组,对象,null,资源; 首先变量是什么,变量是存值用的容器.而值又分为8种类型,例如:$a=12;   分析:$a是一个变量,12是值.而12又是一种整形.正确叫说,声明一个变量a,赋值一个型形数据12.'$'这是叫做变量符 ,跟后面的字符串,组合成一个变量.‘=’这个叫做赋值符. 变量名命名规定,字母和下划线.后面的为任意字母和数字和下划线.数字不能为首字母.还有一些标

C语言如何交换两变量值?5大方法告诉你!

写在前面: C语言中交换两个变量值的操作经常会用到,也有不少人提问诸如不用临时变量怎么交换两个变量值的问题,今天我们在这里进行一个总结,也算是对这个问题的统一回复,我一共总结了5种方法(名字都是我自己取的,不当之处还请批评指正),希望大家看完有所收获. 1.临时变量法 方法解释:采用临时变量的方法,作为中间过渡,这是最简单也是大家最容易想到的方法,此法在各种场合应用极多,应该熟练掌握. #include<stdio.h> int main(void) { int a=1,b=2,tmp; tm

不借助第三个变量,交换两个变量值的3种方式

今天在我们学校的OJ上做题,一道非常简单的题,突然想试试能不能不借助第三个变量,交换两个变量值.蒙出来一半了已经,好可惜.现在把方法写在这里,希望以后不要忘记. 1 void fun1() 2 { 3 int a = 10, b = 100; 4 5 a = a + b; 6 b = a - b: 7 a = a - b; 8 printf("%d\n%d\n", a, b); 9 } 10 11 void fun2() 12 { 13 int a = 10, b = 100; 14

Java随笔:使用异或操作交换变量值的风险

在面试中,经常会问到“如何不用中间变量交换两个变量值”. 看看下面这个代码输出是什么: int x = 1984; int y = 2001; x^=y^=x^=y; System.out.println("x="+x+";y="+y); 看上去应该很完美的:x=2001;y=1984 实际输出是:x=0;y=1984 问题出在哪里?是的,就是JVM的编译器. 看看实际的汇编: Code: 0: sipush 1984 3: istore_1 4: sipush 2

python 学习7 交换变量值

在其他语言中,交换两个变量值的时候,可以这样写: temp = a a = b b = temp 在Python中,我们可以简单的这样写: a,b=b,a 实验如下: >>> a=10 >>> b=5 >>> print(a,b) 10 5 >>> a,b=b,a >>> print(a,b) 5 10 >>>

C语言播放声音最简单的两种方法

1. 假设仅须要播放波形文件wav格式的声音,非常easy.仅仅需一句话: PlaySound(TEXT("Data\\1.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP); 在这里仅仅提供方法,具体问题自己去探索. 完整C语言代码: #include <windows.h> #pragma comment(lib, "Winmm.lib") int main(int argc, char *argv[]

C语言结构体定义的几种方法

什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据结构.结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问. 结构体的定义: C语言结构体类型的定义模板大概为: struct 类型名{ 成员表列 } 变量; 在成员表列中可以是几种基本数据类型,也可以是结构体类型. struct 类

C语言结构体初始化的四种方法

定义 struct InitMember{    int first:    double second:    char* third:    float four;}; 方法一:定义时赋值 struct InitMember test = {-10,3.141590,"method one",0.25}: 需要注意对应的顺序,不能错位.方法二:定义后逐个赋值 struct InitMember test: test.first = -10;test.second = 3.14159