在C函数构建中什么星号位置意味着什么?

str*_*min 3 c pointers function

我知道这是一个初学者的问题,但是我不明白它是如何工作的,我发现在每个来源上我都看到了一种不同的方法来做同样的事情,而且我不理解在c中构建函数的这些方法之间的区别。返回一个字符串。

发生什么情况:

我在返回类型后写星号吗?

char* my_function(){...}
Run Code Online (Sandbox Code Playgroud)

如果在函数名称前写星号怎么办?

char *my_function(){...}
Run Code Online (Sandbox Code Playgroud)

两者之间的星号是什么?

char * my_function(){...}
Run Code Online (Sandbox Code Playgroud)

2星号是什么意思?

char **my_function(){...}
Run Code Online (Sandbox Code Playgroud)

是的,下一个代码将编译:

char* * **my_function(){...}
Run Code Online (Sandbox Code Playgroud)

或者...他们都是同一件事吗?

chu*_*ica 7

char* my_function(){...}定义一个函数,返回指向char的指针

char *my_function(){...}定义一个函数,返回指向char的指针。与上述相同-不同的样式。

char * my_function(){...}定义一个函数,返回指向char的指针。与上述相同-不同的样式。

2星号是什么意思?->指向指针的指针。

char **my_function(){...}定义一个返回指向char指针的指针的函数。与上述不同-返回类型不同。

char* * **my_function()(){...}定义一个函数,该函数返回指向char的指针的指针。与上述不同-返回类型不同。

  • @Bathsheba真正的英雄功夫是[C ib↔英语](https://cdecl.org):出色的C资源。 (4认同)
  • 不赞成这一点是不礼貌的。努力;-) (3认同)
  • 我喜欢这个答案,该网站将帮助我了解我的功能,谢谢! (2认同)

Bat*_*eba 5

只要星号位于char和之间my_function,间距就不会有任何区别。

在所有情况下,它们都是函数返回类型的一部分。

char*表示返回类型是的指针char

char**表示返回类型是指向的指针char

等等。