*p 和 &p 是在C语言中用于处理指针的两种不同操作。
-
*p:*是解引用运算符,用于访问指针所指向的内存地址上的值。如果p是一个指针变量,*p就是该指针所指向的值。- 举例:如果有
int *p,它是一个指向整数的指针,那么*p就是该指针指向的整数的值。
-
&p:&是取址运算符,用于获取变量的内存地址。如果p是一个变量,&p就是该变量的地址。- 举例:如果有
int x,那么&x就是变量x的地址。
综合来说,*p 用于获取指针 p 所指向的值,而 &p 用于获取指针 p 本身的地址。
举例:
int x = 10; // 定义一个整数变量 x,赋值为 10
int *p = &x; // 定义一个指向 x 的指针 p
printf("Value pointed to by p: %d\n", *p); // 输出指针 p 所指向的值(即 x 的值)
printf("Address of p: %p\n", (void *)&p); // 输出指针 p 本身的地址
运行结果


![BUU [HCTF 2018]Hideandseek](https://img-blog.csdnimg.cn/img_convert/3e4aadda7ded3f0477807c06ab39d184.png)

















