首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

初学C语言,该怎么解决

2012-04-13 
初学C语言第一个问题:例:for(int i0 i 10 i++)这个语句中为什么 i0 前不能有int,也就是说为什么不

初学C语言
第一个问题:例:for(int i=0 ; i < 10 ; i++) 这个语句中为什么 i=0 前不能有int,也就是说为什么不能在这是定义变量,在C++和Java中都是可以的。
第二个问题:定义变量为什么只能在主程序开头定义。比如下面语句
void main()
{  
  //以下只是一个程序的一部分
  int i,j;
  //int m,n; 如果在这里定义就不会报错
  printf("请输入:");
  int m,n; //在这里定义是会报错的
}

[解决办法]
如果用的是gcc编译器的话, -std=C99就可以了 std=standard
[解决办法]
gcc编译器是可以的

[解决办法]
貌似有些编译器可以,有些编译器不可以,貌似取决于编译器C89还是C99标准。
[解决办法]
第一个问题:例:for(int i=0 ; i < 10 ; i++) 这个语句中为什么 i=0 前不能有int,也就是说为什么不能在这是定义变量,在C++和Java中都是可以的。
第二个问题:定义变量为什么只能在主程序开头定义。比如下面语句
void main()
{
//以下只是一个程序的一部分
int i,j;
//int m,n; 如果在这里定义就不会报错
printf("请输入:");
int m,n; //在这里定义是会报错的
}
第一个问题,在C89里不可,在C99里可以.
第二个问题,代码不完整,所以无法回答,总之一个原则:先声明,再使用.
[解决办法]
第一个问题:例:for(int i=0 ; i < 10 ; i++) 这个语句中为什么 i=0 前不能有int,也就是说为什么不能在这是定义变量,在C++和Java中都是可以的。

c89标准不支持for循环里面定义变量,c99标准支持并且推荐这么写。如果楼主的编译器不支持c99,就只能把int i;放到for循环上面。有些编译器如gcc,可以自己设置是否用c99标准。因为很多编译器为了兼容旧程序,默认用c89。
[解决办法]
第二个问题:定义变量为什么只能在主程序开头定义。比如下面语句
void main()
{
//以下只是一个程序的一部分
int i,j;
//int m,n; 如果在这里定义就不会报错
printf("请输入:");
int m,n; //在这里定义是会报错的
}

这个还是标准的问题,c89标准,所有变量都要放在函数的开始处。
而c99就可以在任何地方(在使用之前)定义。
很多程序员,特别是c/c++程序员喜欢在使用的时候才定义变量。
全部放到函数开头,程序可读性不太好。

热点排行