c语言中指针与指针相互赋值
时间: 2023-11-23 08:51:13 浏览: 131
在C语言中,指针与指针之间可以相互赋值。当把一个指针赋值给另一个指针时,两个指针将指向同一个内存地址。这意味着它们将共享相同的数据,并且对其中一个指针所做的更改会影响到另一个指针。
以下是一个示例代码,演示了指针与指针之间相互赋值的情况:
```c
#include <stdio.h>
int main() {
int num1 = 10;
int *ptr1 = &num1; // 将指针ptr1指向num1的地址
int *ptr2; // 声明一个指针ptr2
ptr2 = ptr1; // 将ptr1赋值给ptr2
printf("num1 = %d\n", num1);
printf("*ptr1 = %d\n", *ptr1);
printf("*ptr2 = %d\n", *ptr2);
return 0;
}
```
输出结果为:
```
num1 = 10
*ptr1 = 10
*ptr2 = 10
```
在这个示例中,我们先声明了一个整型变量`num1`,然后创建了一个指向`num1`的指针`ptr1`。接着,我们声明了另一个指针`ptr2`,并将`ptr1`的值赋给了`ptr2`。由于两个指针现在都指向同一个内存地址,因此`*ptr1`和`*ptr2`都能访问到`num1`的值。
相关问题
C语言中指针赋值怎么赋值
在C语言中,可以通过使用赋值运算符“=”将一个指针赋值给另一个指针。例如,假设有两个指向int类型变量的指针变量p1和p2,可以使用以下语句将p2指向的变量的地址赋值给p1:
```c
int *p1;
int *p2;
p1 = p2;
```
这将使p1和p2指向同一个int类型变量。注意,指针变量本身也是有地址的,因此也可以将一个指针变量的地址赋值给另一个指针变量。例如:
```c
int *p1;
int **p2;
p2 = &p1;
```
这将使p2指向p1的地址,从而实现了指向指针的指针。
c语言中指针给指针怎么赋值
在 C 语言中,可以使用一个指向指针的指针(即二级指针)来给指针赋值。具体操作如下:
```c
int a = 10;
int *p1 = &a; // 定义一个指向 int 类型的指针,并将其初始化为变量 a 的地址
int **p2 = &p1; // 定义一个指向指针的指针,并将其初始化为指针 p1 的地址
// 修改指针 p1 的值
*p1 = 20;
// 修改指针 p2 指向的指针 p1 的值
**p2 = 30;
printf("a = %d\n", a); // 输出结果为 a = 30
```
在上面的代码中,首先定义了一个指向 int 类型的指针 p1,并将其初始化为变量 a 的地址。接着定义一个指向指针的指针 p2,并将其初始化为指针 p1 的地址。通过修改指针 p1 和指针 p2 指向的指针 p1 的值,最终修改了变量 a 的值。