0

所以,我正在阅读 Beej 的网络编程指南,他使用了这个功能:

void *get_in_addr(struct sockaddr *sa)
{
    if (sa->sa_family == AF_INET) {
    return &(((struct sockaddr_in*)sa)->sin_addr);
}

所以,我知道它在做什么。我无法理解的是函数声明中的 * 到底在做什么。此外,这个函数似乎正在返回一个内存位置,但它是无效的。这里发生了什么?

4

1 回答 1

4

'*' 表示该函数返回一个 void *。这是一个可以转换为任何其他指针的指针。

于 2013-09-28T01:12:53.993 回答