鱼C论坛

 找回密码
 立即注册
查看: 4106|回复: 12

C语言循环与指针

[复制链接]
发表于 2013-2-20 16:14:09 | 显示全部楼层 |阅读模式
5鱼币
include <stdio.h>
include<stdlib.h>
include<conio.h>
int main(int argc,char * argv[])
{int a[5]={5,4,3,2,1};
int* p=&a[0];
for(int i=0;i<5;i++)
{printf("%d ",*p);
p++;}
system("PAUSE");
return 0;
}
编译器总是提示for那一行有问题!到底有什么问题啊,求指教!!!

点评

VC6是按照C90的标准编译器。  发表于 2013-2-21 14:19
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-20 16:31:25 | 显示全部楼层
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
没有预编译符号!亲,for那行没有问题的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-20 16:55:20 | 显示全部楼层
本帖最后由 half-life 于 2013-2-20 16:56 编辑

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

评分

参与人数 1鱼币 +1 收起 理由
メ㊣逆ご帅☆ + 1 正解

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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]={5,4,3,2,1};
        int* p=&a[0];
        for(int i=0;i<5;i++)
        {
                printf("%d ",*p);
                p++;
        }
        system("PAUSE");
        return 0;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-21 12:25:31 | 显示全部楼层
VC++6.0不支持在for的括号里定义变量
include前要有#
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-22 13:30:49 From FishC Mobile | 显示全部楼层
七月之变 发表于 2013-2-21 12:25
VC++6.0不支持在for的括号里定义变量
include前要有#

也就是说有些编译器不可以在for的括号里定义咯?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-22 13:32:27 From FishC Mobile | 显示全部楼层
你|若|问|我 发表于 2013-2-20 16:31
没有预编译符号!亲,for那行没有问题的!

把定义从for的括号里移出来就好了~~可是书上就是这么定义的啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-22 13:33:44 From FishC Mobile | 显示全部楼层
half-life 发表于 2013-2-20 16:55
把i的定义放到for外面,或者使用c99标准编译,或者把文件后缀改为cpp

果然可以了~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-23 09:42:55 | 显示全部楼层
include前没有#符号, i 放在外面定义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-23 11:38:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-23 22:44:22 | 显示全部楼层
我记错了。。。是变量的作用域不同,然后我就记得vc6.0最好不要在for里定义变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 18:42:14 | 显示全部楼层
我用GCC 编译了一下!!就报“錯誤:在 C99 模式之外使用 「for」 循環初始化宣告”,就很明显了呀?编译器认为在for循环里面 定义变量是不对的。而且我认为一个良好的编程习惯是,把所有的变量都在函数初始处就定义好!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-26 10:18:17 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 07:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表