C语言中指针赋值怎么赋值
时间: 2023-11-24 09:19:23 浏览: 85
在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
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*funcPtr)(int, int); // 声明一个函数指针
int result;
funcPtr = add; // 将函数指针赋值为 add 函数
result = (*funcPtr)(2, 3); // 调用 add 函数
printf("Result of add function: %d\n", result);
funcPtr = subtract; // 将函数指针赋值为 subtract 函数
result = (*funcPtr)(2, 3); // 调用 subtract 函数
printf("Result of subtract function: %d\n", result);
return 0;
}
```
输出:
```
Result of add function: 5
Result of subtract function: -1
```
在上面的示例中,我们首先声明了一个函数指针 `funcPtr`,它可以指向任何带有两个整数参数和整数返回值的函数。然后,我们将 `funcPtr` 分别赋值为 `add` 函数和 `subtract` 函数。在每个赋值之后,我们调用 `funcPtr` 指向的函数,并将结果存储在 `result` 变量中。最后,我们使用 `printf` 函数输出结果。
c语言中指针与指针相互赋值
在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`的值。
阅读全文