声明一个 int *p = &x 什么情况下需要使用 *

img


声明一个 int *p = &x; 什么情况下需要使用 *,什么情况下不需要使用;
如这里为啥使用 cout << *p << end1;
为什么这里又不用 p =&y;

指针需要用*,取地址&得到的是指针

int *p 这是定义了一个指针p, 指针p只能赋值地址值, &y 就是整数 y的地址。 *p 就是取p所指向的地址上的值,你这里就是 x的值

在c语言里,*的含义可太多了,你需要先了解基本概念,每个*都是什么意思
如果是x*y,这里*表示乘法
如果是int *p,这里int *是类型,表示定义一个一级指针,变量名叫p,如果是二级指针那么就int **
如果单独写 *p,表示对指针解一次地址,拿到p指向的地址里对应的值,当然也可以对其赋值
如果*出现在正则表达式里,它还是通配符
你了解了是什么,就自然知道为什么

1 声明一个指针变量,如int*

2 对一个指针取内容,本题中p的内容为x,所以会输出5