c - 为什么我们在尝试使用 c 中的套接字连接到服务器时使用 * 和 &
问题描述
connect(socket_desc , (struct sock_address *)&server , sizeof(server)
为什么我们在尝试连接到服务器或绑定服务器时使用 * 和 & 就像制作一个指针或其他东西但我相信 * 与它结合时不会制作一个指针,那么为什么要把它们都放在一起呢?感谢您的任何回答。
解决方案
(struct sock_address *)&server
简单地说:使用 的地址server
,强制转换为“指向 sock_address 结构的指针”。
您需要提供地址,因为该函数想要更改该结构中的内容。而且演员阵容很简单,所以它是正确的类型。
它与以下内容不同:
int num = 42;
int num2 = *(&num); // num would be better.
这将是两个相互抵消。
虽然*ptr
取消引用 ptr
为您提供基础值,但(type *)ptr
将ptr
其视为指向的指针type
- 在后一种情况下没有取消引用。
推荐阅读
- fragmentpageradapter - onLoadFinished() 没有被调用,但 onCreateLoader() 被调用
- python - How to fix PackageNotFoundError for exe files
- javascript - 根据 Google 日历资源可用性更改 DOM
- python-3.x - 使用路由、视图和 GET 参数的 Python 3 + Flask 应用程序
- node.js - 如何在 node.js 中使用 redis?
- visual-studio-code - VS Code 在保存时自动删除内部空格
- python - 如何修复 jupyter notebook 中的数据集读取错误?
- javascript - 编写一个函数,返回 4 个数字中最大的一个
- python - would there be a more shorter version for finding keys from dictionary?
- javascript - 无法从 WSL 中的 npm/yarn 链接加载链接模块