首页 > 解决方案 > 为什么我们在尝试使用 c 中的套接字连接到服务器时使用 * 和 &

问题描述

connect(socket_desc , (struct sock_address *)&server , sizeof(server)

为什么我们在尝试连接到服务器或绑定服务器时使用 * 和 & 就像制作一个指针或其他东西但我相信 * 与它结合时不会制作一个指针,那么为什么要把它们都放在一起呢?感谢您的任何回答。

标签: csocketsnetworking

解决方案


(struct sock_address *)&server

简单地说:使用 的地址server,强制转换为“指向 sock_address 结构的指针”。

您需要提供地址,因为该函数想要更改该结构中的内容。而且演员阵容很简单,所以它是正确的类型。

以下内容不同:

int num = 42;
int num2 = *(&num); // num would be better.

是两个相互抵消。

虽然*ptr 取消引用 ptr为您提供基础值,但(type *)ptrptr其视为指向的指针type- 在后一种情况下没有取消引用。


推荐阅读