gpt4 book ai didi

c - 在 for 语句中使用逗号?

转载 作者:行者123 更新时间:2023-12-02 06:12:58 25 4
gpt4 key购买 nike

我给了一个答案 How to append characters to a string array in C但在理解 for 语句的初始化部分中逗号的使用时似乎有问题:

int i, j, k;
for (i=0, j=0, k=0;

在此 for 语句中,逗号是执行三个初始化的顺序运算符。

int j, k;
for (int i=0, j=0, k=0;

在这个 for 语句中,我得到了评论 “循环外的 jk 将被 jk 在循环中。”

所以在第一个示例中,逗号是顺序运算符,而在第二个示例中,逗号是声明符列表中的分隔符?

最佳答案

for 语句的第一“部分”可以是声明或表达式,但不能是两者的混合。

i=0, j=0, k=0 是一个使用逗号运算符的表达式。它执行三个任务。

int i=0, j=0, k=0; 是一个声明,因为它以类型开头。这里的逗号不是运算符,只是分隔共享类型的声明符。它声明所有三个变量,而不仅仅是 i,并初始化它们。

如果你想声明和初始化i,但分配现有变量jk,你可以使用括号强制逗号成为运营商:

int j, k;
for (int i = (j=0, k=0); // ...

(i 是从第二个逗号操作数 k=0 初始化的,尽管这里两者的值为零。)

虽然在循环之前立即声明 i 可能更易读,但使用 {} block 适本地限制其范围。

int j, k;
{
int i=0;
for (j=0, k=0; // ...

关于c - 在 for 语句中使用逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59649486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com