почему мы используем * и & при попытке подключиться к серверу с сокетами в c - PullRequest
0 голосов
/ 03 мая 2020
connect(socket_desc , (struct sock_address *)&server , sizeof(server)

почему мы используем * и & при попытке подключиться к серверу или связать сервер, это все равно что сделать указатель или что-то в этом роде, но я считаю, что * не создает указатель в сочетании с тем, зачем ставить их обоих ? спасибо за любые ответы.

1 Ответ

1 голос
/ 03 мая 2020
(struct sock_address *)&server

просто утверждает: используйте адрес server, приведенный к «указателю на структуру sock_address».

Вам нужно дать адрес, потому что функция хочет изменить вещи в этой структуре. И приведение просто так, что это правильный тип.

Это не так же, как:

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

который будет быть двумя отменяющими

Хотя *ptr разыменовывает ptr, чтобы дать вам базовое значение, (type *)ptr вместо этого обрабатывает ptr, как если бы он был указателем на type - в последнем случае разыменование отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...