int*p 和*p的区别
时间: 2023-08-16 22:09:50 浏览: 90
`int* p` 和 `*p` 是 C 语言中的两种不同的语法表示方法,它们有以下区别:
1. `int* p`:这是一个定义指针变量的语法。在这种情况下,`p` 是一个指针变量,它指向一个整型数据。`int*` 表示 `p` 是一个指向整型数据的指针。
2. `*p`:这是一个解引用操作符。在这种情况下,`*p` 表示访问指针 `p` 所指向的内存中存储的值。如果 `p` 是一个指向整型数据的指针,那么 `*p` 就表示该指针所指向的整型数据的值。
以下是一个示例用法的比较:
```c
#include <stdio.h>
int main() {
int num = 10;
int* p = #
printf("Value of num: %d\n", num); // 输出:Value of num: 10
printf("Value of *p: %d\n", *p); // 输出:Value of *p: 10
*p = 20;
printf("Value of num: %d\n", num); // 输出:Value of num: 20
printf("Value of *p: %d\n", *p); // 输出:Value of *p: 20
return 0;
}
```
在上述示例中,我们定义了一个整型变量 `num`,然后声明了一个指向整型数据的指针 `p`,并将 `p` 初始化为 `&num`,即 `p` 指向了 `num` 变量。接下来,我们通过 `*p` 解引用操作符访问指针 `p` 所指向的内存中存储的值。在第一次打印中,我们分别打印了 `num` 的值和 `*p` 的值,它们都是相同的。然后,我们通过 `*p` 将 `num` 的值修改为 20,并再次打印了 `num` 和 `*p` 的值,它们同样也都是相同的。
总之,`int* p` 表示定义一个指向整型数据的指针变量,而 `*p` 表示访问指针 `p` 所指向的内存中存储的值。