定义j的范围

huang3407 2008-08-30 09:00:45
定义 j的差别
第一种
int main()
{ int i=1;
for(i=1;i<7; i++)
{ for(int j=1;j<7;j++)
{
printf("*");
}
}
system("pause");
}
---------------------
第二种
int main()
{ int i=1; int j=1;
for(i=1;i<7; i++)
{ for( j=1;j<7;j++)
{
printf("*");
}
}
system("pause");
}
---------------------------------------
第一种是不是只能在for循环里面存在,会不会出现语法错误,
 第二种在整个函数里面存在?
...全文
142 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bayuan0414 2008-09-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 weiyijiji 的回复:]
因为你用的是C编译器,照理说C99已经可以在后面定义了,但是标准C只能在程序开始处
定义.C++是随意的
[/Quote]
e_sharp 2008-09-03
  • 打赏
  • 举报
回复
c要求变量都在开始处定义
jiangzy80 2008-09-03
  • 打赏
  • 举报
回复
C里面的声明语句一般都是在开始,不像C++那样可以随地声明,你用的C编译器,当然就要遵循C语言的规则,所以C编译器不能通过,而VC能通过。
xqls_xqls 2008-08-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 weiyijiji 的回复:]
因为你用的是C编译器,照理说C99已经可以在后面定义了,但是标准C只能在程序开始处
定义.C++是随意的
[/Quote]

在VC6中可以编译通过。
XiaoG602 2008-08-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 weiyijiji 的回复:]
因为你用的是C编译器,照理说C99已经可以在后面定义了,但是标准C只能在程序开始处
定义.C++是随意的
[/Quote]
weiyijiji 2008-08-30
  • 打赏
  • 举报
回复
因为你用的是C编译器,照理说C99已经可以在后面定义了,但是标准C只能在程序开始处
定义.C++是随意的
huang3407 2008-08-30
  • 打赏
  • 举报
回复
出现这个错误
G:\programme\c\菱形\lingc.c 'for' loop initial declaration used outside C99 mode
jieao111 2008-08-30
  • 打赏
  • 举报
回复
什么意思,什么错误
huang3407 2008-08-30
  • 打赏
  • 举报
回复
int main()
{ int i=1;
for(i=1;i <7; i++)
{ for(int j=1;j <7;j++)
{
printf("*");
}
}
system("pause");
}
int j只在for循环里面存在,但是运行的时候会出语法错误为什么?
weiyijiji 2008-08-30
  • 打赏
  • 举报
回复
第1种在C++中某些编译器可以出现在for循环后到右括号的范围内.
第2种是
jieao111 2008-08-30
  • 打赏
  • 举报
回复
是的。在哪个大括号内定义,作用域就在哪个范围内

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧