C - 这个逗号分隔的声明是什么意思

Kiw*_*der 1 c syntax

为这个愚蠢的问题道歉,但我不知道如何为此找到参考。我找到了一些 TCP 服务器的代码,这一行让我很困惑:

int master_sockfd, client_sockfds[3] = {0}, cli_sockfd, client_games_started[3];

上面的变量都没有事先初始化,所以看起来它是在这里声明的。有人可以帮我理解这是什么意思吗?如果我记得正确{0}设置int为 0,但在这种情况下我无法理解。我也很困惑如何看起来有两个声明和三个赋值。是的,所有编译的东西都没有错误/警告。谢谢!

Tim*_*Tim 5

int master_sockfd, client_sockfds[3] = {0}, cli_sockfd, client_games_started[3];
Run Code Online (Sandbox Code Playgroud)

等同于:

int master_sockfd;
int client_sockfds[3] = {0};
int cli_sockfd;
int client_games_started[3];
Run Code Online (Sandbox Code Playgroud)
  • master_sockfd并且cli_sockfd是整数
  • client_sockfds 是一个由 3 个整数组成的数组,全部初始化为零
  • client_games_started 是一个由 3 个整数组成的数组