C语言函数间用指针调用数值的问题

函数原型是这样的
void f(int * u);
main里有这么一句
f(&x);
相当于是把变量x的地址传递给f(),没错吧,那问题来了,被赋值的是 * u还是u?
答案自然是u
我是这样想的, * u 作为一个int整体是f()的形式参数,那就将地址以int储存,那u岂不是这个地址的地址?到底哪里理解错误了?

 int *u,u是指针,他需要指向一个地址,&x,就是x的地址,int *u = &x,这个就是把x的地址,赋值给u,让u指向x的地址

也就是问说int * u;这个语句到底强调的是声明了一个int 变量 * u,还是说声明了一个指针 u?
我觉得应该是后者,对吗?

u是指向int类型的指针

int x =1;
f(&x) ;//这个表示将变量x的地址传给u,即  int *u = &x;u为一个指向int类型的指针

可以这样想, u 才是f()的形式参数,u中存放的是一个地址,一个指向int变量类型的地址

u是指针变量,就是存取地址的变量,你的函数定义中int *u的含义是u中存取的地址是指向一个int类型的数据。

u是int类型指针
x是int类型的变量
&x表示取x的地址
传参过程就是把x的地址给了u
u就是用来存储int类型的指针的