指针需要用*,取地址&得到的是指针
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