已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
2天前关闭。
截至2天前,社区正在审查是否重新讨论此问题。
Improve this question
我正在学习C语言,我遇到了一行代码,它与下面的代码类似:
void myControl(const myInput*, myOutput*, myRuntime*, const myConfig*);
变量后面的 * 符号是什么意思?
我在互联网上寻找“C语言 * 含义”,但我总是发现 * 作为指针的符号,放在变量名之前而不是之后。
2条答案
按热度按时间oxalkeyp1#
行中:
myControl
是一个带4个参数的函数。每个参数都是指向一个类型(可能是一个结构)的指针。一些结构是
const
(不可更改的)。一些结构可以更改。具有参数名的常规形式的完整函数原型如下所示:
inputData
是指向类型myInput
的结构的指针。这是无法改变的。
outputData
是指向类型myOutput
的结构的指针。它可以被改变。
runTimeInfo
是指向类型myRuntime
的结构的指针。它可以被改变。
configuration
是指向类型myConfig
的结构的指针。这是无法改变的。
jv4diomz2#
这条线
是function declaration。
在C23之前,* 函数声明 * 和function definition之间的一个关键语法差异是,在函数声明中,参数列表中每个参数的 * 标识符 *(您称为 "变量名")是可选的。
另一方面,在函数定义中需要每个参数的标识符:
在示例中看到的只是构成函数 * signature * 的类型,其中每个参数都是pointer type,如
*
符号所示。