C-循环初始值设定项中的while运算符

C-循环初始值设定项中的while运算符,c,for-loop,while-loop,comma-operator,C,For Loop,While Loop,Comma Operator,为什么我不能这样写短信 int i, size; int *arr; ... for(i = size - 1, while(arr[i] == 0) i--; i >= 0; i--) { ... } 这在C语言中就是没有有效的语法 您想要的解决方案可能是: int i, size; int *arr; ... for(i = size - 1; i >= 0; i--) { if (arr[i] == 0) continue; ... } 出于

为什么我不能这样写短信

int i, size;
int *arr;
...
for(i = size - 1, while(arr[i] == 0) i--; i >= 0; i--) { ... }

这在C语言中就是没有有效的语法

您想要的解决方案可能是:

int i, size;
int *arr;
...
for(i = size - 1; i >= 0; i--) {
    if (arr[i] == 0)
        continue;
    ...
}

出于同样的原因,你不能写很多东西-它不是有效的C语法。简短的回答-因为语言语法不允许它;
for
语句中的控件表达式不能是其他语句。至于为什么语法是这样的,你必须问丹尼斯·里奇,他已经不在了。因为语言只允许表达式而不允许语句。阅读
了解
循环语法<(表达式;表达式;表达式)语句的代码>