用C语言编写程序通过一个指针变量间接访问两个不同的整型变量
时间: 2023-12-14 08:35:41 浏览: 73
可以使用指针变量来间接访问两个不同的整型变量,代码如下:
```c
#include <stdio.h>
int main()
{
int num1 = 10;
int num2 = 20;
int *ptr;
ptr = &num1; // 将指针 ptr 指向 num1
printf("num1 = %d\n", *ptr); // 输出 num1 的值
printf("num2 = %d\n", num2); // 直接输出 num2 的值
ptr = &num2; // 将指针 ptr 指向 num2
printf("num1 = %d\n", num1); // 直接输出 num1 的值
printf("num2 = %d\n", *ptr); // 输出 num2 的值
return 0;
}
```
运行结果如下:
```
num1 = 10
num2 = 20
num1 = 10
num2 = 20
```
在代码中,首先定义了两个整型变量 `num1` 和 `num2`,然后定义了一个指向整型变量的指针变量 `ptr`。接着,将 `ptr` 指向 `num1`,通过 `*ptr` 访问 `num1` 的值,直接输出 `num2` 的值。然后将 `ptr` 指向 `num2`,直接输出 `num1` 的值,通过 `*ptr` 访问 `num2` 的值。
相关问题
用函数编写一个c语言程序不用指针,交换两个整形变量
当然可以,不需要使用指针,我们可以直接通过函数参数的传值来实现两个整数变量的交换。下面是一个简单的C语言程序示例:
```c
#include <stdio.h>
// 函数声明,接收两个整数作为参数,并返回无
void swap(int a, int b);
int main() {
int num1 = 5;
int num2 = 10;
printf("Before swapping:\nnum1 = %d\nnum2 = %d\n", num1, num2);
// 调用swap函数,传递num1和num2的值
swap(num1, num2);
printf("After swapping:\nnum1 = %d\nnum2 = %d\n", num1, num2);
return 0;
}
// 函数实现:接受两个整数a和b,通过第三个临时变量完成交换
void swap(int a, int b) {
int temp = a; // 将a的值保存到temp
a = b; // 更新a的值为b的值
b = temp; // 更新b的值为原来的a(temp)
}
```
在这个例子中,我们创建了一个名为`swap`的函数,它不依赖于指针,而是通过临时变量间接实现了两个整数的交换。当你运行这个程序时,你会看到`num1`和`num2`的值在调用`swap`函数之后发生了交换。
编写一个c语言程序,使用指针交换两个浮点数的值。
在C语言中,你可以通过指针来交换两个浮点数(float类型的变量)的值。这里是一个简单的示例:
```c
#include <stdio.h>
// 函数声明,接受两个指针作为参数
void swap(float *a, float *b) {
float temp; // 临时存储其中一个数
temp = *a; // 将第一个数复制到temp
*a = *b; // 将第二个数赋给第一个数
*b = temp; // 将temp的值赋给第二个数
}
int main() {
float num1 = 3.5;
float num2 = 2.0;
printf("Before swapping: num1 = %.1f, num2 = %.1f\n", num1, num2);
// 使用指针传递并交换num1和num2的值
float *p1 = &num1;
float *p2 = &num2;
swap(p1, p2);
printf("After swapping: num1 = %.1f, num2 = %.1f\n", num1, num2);
return 0;
}
```
在这个例子中,`swap`函数接受两个浮点型指针,然后通过解引用操作符`*`间接访问并交换它们所指向的数值。在`main`函数中,我们创建了两个变量`num1`和`num2`,并将它们的地址传递给`swap`函数。
运行这个程序,你会看到两个数字的值已经被成功交换了。
阅读全文