C语言中,if的范围是多少?

#include <stdio.h>
void del(char str[],char ch)
{
int i,j=0;
for(i=0;str[i]!='\0';i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j] ='\0' ; } //这一行,为什么不在if语句里?
int main( )
{
char s[100],c;
gets(s);
c=getchar();
del(s,c);
puts(s);
return 0;
}

如果是 if ( 条件 ) {语句块;}; 花括号后面有分号,则条件语句结束。
如果是 if ( 条件 ) 单个语句; 若下面没有 else , 则条件语句到分号结束。
如果是 if ( 条件 ) 单个语句;else 语句或语句块; 那么,条件成立执行单个语句,条件不成立执行else 后面的语句或语句块。
如果是 if ( 条件 ) {语句块}; else ....; 那么 这里 分号接else 有语法错误。
如果是 if ( 条件 ) {语句块} else ....; (注意else前 少一个分号) 则是正确的语句,条件成立执行前面的语句块,条件不成立执行else 后面的语句或语句块。
你的例子中 str[j] ='\0' ; 不属条件语句。因为 如果是 if ( 条件 ) 单个语句; 若下面没有 else , 则条件语句到 前面的分号 已经结束。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-15
你是说if语句块的范围还是if的条件表达式;
if语句块的范围就系它后边第一个分号;条件表达式取决于输入;本回答被提问者采纳
相似回答