在 C 中,*<variable> 和 <variable>* 之间有什么区别吗?

In there any difference between *<variable> and <variable>* in C?

在下面的函数声明中

my_struct* create(char *name);

my_struct**name*的意思有区别吗?

我理解 char *name 意味着我们将传递一个 char 指针给函数 my_struct 调用 name。我还知道该函数将 return 指向某物(的内存地址)的指针。我不明白的是为什么 my_struct* 而不是 *my_struct?

在此声明中

my_struct * create(char *name);

函数的名称是 create。该函数有一个 char * 类型的参数,并且该函数具有 return 类型的 my_struct *。那就是 returns 一个指向类型 my_struct.

的对象的指针

Is there any difference in the meaning of * in my_struct* and *name

my_struct 是类型说明符。所以 my_struct * 是一个指针类型。 name 是表示参数名称的标识符。参数(标识符)的类型 namechar *.

注意这些参数的声明是一样的

char* name
char * name
char *name

即参数类型为char *,参数名称为name.

在不同时的函数声明中,其参数的定义名称可以省略。

所以上面的函数声明也可以这样写

my_struct * create( char * );