靖Harry 发表于 2013-2-20 16:14:09

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那一行有问题!到底有什么问题啊,求指教!!!

你|若|问|我 发表于 2013-2-20 16:31:25

#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
没有预编译符号!亲,for那行没有问题的!

half-life 发表于 2013-2-20 16:55:20

本帖最后由 half-life 于 2013-2-20 16:56 编辑

把i的定义放到for外面,或者使用c99标准编译,或者把文件后缀改为cpp

小新110 发表于 2013-2-20 17:27:46

可能你使用的编译器有问题。代码我在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;
}

七月之变 发表于 2013-2-21 12:25:31

VC++6.0不支持在for的括号里定义变量
include前要有#

靖Harry 发表于 2013-2-22 13:30:49

七月之变 发表于 2013-2-21 12:25
VC++6.0不支持在for的括号里定义变量
include前要有#

也就是说有些编译器不可以在for的括号里定义咯?

靖Harry 发表于 2013-2-22 13:32:27

你|若|问|我 发表于 2013-2-20 16:31
没有预编译符号!亲,for那行没有问题的!

把定义从for的括号里移出来就好了~~可是书上就是这么定义的啊!

靖Harry 发表于 2013-2-22 13:33:44

half-life 发表于 2013-2-20 16:55
把i的定义放到for外面,或者使用c99标准编译,或者把文件后缀改为cpp

果然可以了~~

风之残月 发表于 2013-2-23 09:42:55

include前没有#符号, i 放在外面定义

左手、莫离忧 发表于 2013-2-23 11:38:07

七月之变 发表于 2013-2-21 12:25 static/image/common/back.gif
VC++6.0不支持在for的括号里定义变量
include前要有#

不支持? vc++6.0都已经用了好几年了 这个,还真不知道

七月之变 发表于 2013-2-23 22:44:22

我记错了。。。是变量的作用域不同,然后我就记得vc6.0最好不要在for里定义变量

我叫老猪 发表于 2013-3-6 18:42:14

我用GCC 编译了一下!!就报“錯誤:在 C99 模式之外使用 「for」 循環初始化宣告”,就很明显了呀?编译器认为在for循环里面 定义变量是不对的。而且我认为一个良好的编程习惯是,把所有的变量都在函数初始处就定义好!

阔怀 发表于 2015-8-26 10:18:17

{:1_1:}
页: [1]
查看完整版本: C语言循环与指针