C语言循环与指针
include <stdio.h>include<stdlib.h>
include<conio.h>
int main(int argc,char * argv[])
{int a={5,4,3,2,1};
int* p=&a;
for(int i=0;i<5;i++)
{printf("%d ",*p);
p++;}
system("PAUSE");
return 0;
}
编译器总是提示for那一行有问题!到底有什么问题啊,求指教!!!
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
没有预编译符号!亲,for那行没有问题的! 本帖最后由 half-life 于 2013-2-20 16:56 编辑
把i的定义放到for外面,或者使用c99标准编译,或者把文件后缀改为cpp
可能你使用的编译器有问题。代码我在vs2010下编译成控制台程序,可以编译可以运行,没有问题。
整理后的代码(仅整理了缩进):
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc,char * argv[])
{
int a={5,4,3,2,1};
int* p=&a;
for(int i=0;i<5;i++)
{
printf("%d ",*p);
p++;
}
system("PAUSE");
return 0;
}
VC++6.0不支持在for的括号里定义变量
include前要有# 七月之变 发表于 2013-2-21 12:25
VC++6.0不支持在for的括号里定义变量
include前要有#
也就是说有些编译器不可以在for的括号里定义咯? 你|若|问|我 发表于 2013-2-20 16:31
没有预编译符号!亲,for那行没有问题的!
把定义从for的括号里移出来就好了~~可是书上就是这么定义的啊! half-life 发表于 2013-2-20 16:55
把i的定义放到for外面,或者使用c99标准编译,或者把文件后缀改为cpp
果然可以了~~ include前没有#符号, i 放在外面定义 七月之变 发表于 2013-2-21 12:25 static/image/common/back.gif
VC++6.0不支持在for的括号里定义变量
include前要有#
不支持? vc++6.0都已经用了好几年了 这个,还真不知道 我记错了。。。是变量的作用域不同,然后我就记得vc6.0最好不要在for里定义变量 我用GCC 编译了一下!!就报“錯誤:在 C99 模式之外使用 「for」 循環初始化宣告”,就很明显了呀?编译器认为在for循环里面 定义变量是不对的。而且我认为一个良好的编程习惯是,把所有的变量都在函数初始处就定义好! {:1_1:}
页:
[1]