c语言1、编写程序,定义两个字符变量分别为 ch1=?a,ch2=b,要求通过赋值运算 交换它们的值。
时间: 2024-10-15 19:07:39 浏览: 23
在C语言中,交换两个字符变量`ch1`和`ch2`的值,可以使用临时变量或者不使用额外存储空间的方式完成。这里分别提供两种方法:
**使用临时变量**
```c
#include <stdio.h>
int main() {
char ch1 = 'a'; // 定义 ch1
char ch2 = 'b'; // 定义 ch2
printf("Before swap: ch1 = %c, ch2 = %c\n", ch1, ch2); // 输出原始值
// 使用临时变量
char temp;
temp = ch1; // 存储 ch1 的值
ch1 = ch2; // ch1 现在等于 ch2
ch2 = temp; // ch2 现在等于原来 ch1 的值
printf("After swap: ch1 = %c, ch2 = %c\n", ch1, ch2); // 输出交换后的值
return 0;
}
```
**不使用临时变量 (XOR 运算)**
这是一种特殊的技巧,利用异或操作(XOR)来交换两个值,因为 `a XOR a = 0` 和 `a XOR b XOR b = a`。注意这不是推荐做法,因为它可能会导致数据丢失,适用于了解原理的教学演示。
```c
#include <stdio.h>
main() {
char ch1 = 'a';
char ch2 = 'b';
printf("Before swap: ch1 = %c, ch2 = %c\n", ch1, ch2);
ch1 = ch1 ^ ch2; // ch1 = ch1 XOR ch2
ch2 = ch1 ^ ch2; // ch2 = (ch1 XOR ch2) XOR ch2 = ch1 (原来的ch1)
ch1 = ch1 ^ ch2; // ch1 = ch1 XOR ch2 (恢复原ch1)
printf("After swap: ch1 = %c, ch2 = %c\n", ch1, ch2);
return 0;
}
```
阅读全文