鱼C论坛

 找回密码
 立即注册
查看: 5979|回复: 20

变量定义在哪都可以吗

[复制链接]
发表于 2013-6-16 10:52:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 loner 于 2013-6-16 11:00 编辑

#include<stdio.h>
int i;                                                                           //位置1
int main()
{
        struct student
        {
                char name[20];
                char phone[11];
        };
        struct student san[3];
        printf("please input name:");
        gets(san[0].name);
        printf("\nplease input phone");        
        gets(san[0].phone);
        
        printf("\nplease input name:");
        gets(san[1].name);
        printf("\nplease input phone");
        gets(san[1].phone);
        
        printf("\nplease input name:");
        gets(san[2].name);
        printf("\nplease input phone");
        gets(san[2].phone);
        
       int i;                                                                                   //位置2
        for(i=0;i<=2;i++)
        printf("\name:%s\tphone%s\n",san.name,san.phone);
        getch();
}




当我把i定义到位置1时,VC++6.0不报错,程序也能正确执行,但当我把i定义到位置2时,编译就不能通过,但我觉着没错啊 ,求大鸟解释、、
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-16 11:14:16 | 显示全部楼层
在c语言中 变量必须定义在执行语句之前
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-16 11:15:15 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 11:16:41 | 显示全部楼层
#include<stdio.h>
int main()
{

}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-16 11:17:59 | 显示全部楼层
友来友网 发表于 2013-6-16 11:16
#include
int main()
{

还是没明白,你能讲清楚些吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 11:18:06 | 显示全部楼层
#include<stdio.h>
int main()
{
      printf("hello world");
      int i ;
}

这个会报错,因为int i 之前有执行语句printf;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-16 11:24:02 | 显示全部楼层
友来友网 发表于 2013-6-16 11:18
#include
int main()
{

哦、也就是说变量定义一定要放在程序头或函数头是吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 11:45:00 | 显示全部楼层
要放在执行语句之前,
而且基本只有c语言才是这样,像c++, java等都可以随便
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 12:21:13 | 显示全部楼层
我是路过打酱油的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 12:58:20 | 显示全部楼层
路过。。。。。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 14:07:49 | 显示全部楼层
:D看看!!!!!!!!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 14:35:57 | 显示全部楼层
学习了。。。。。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 17:16:26 | 显示全部楼层
远远的看一下,挤上来了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 17:33:42 | 显示全部楼层
呵呵,c语言定义变量一般都在函数开头定义的.....
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 20:52:39 | 显示全部楼层
对滴~定义变量要放在执行语句之前!这是C的死知识,正好更楼主一起复习一遍!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-17 10:45:50 | 显示全部楼层
别来无恙 发表于 2013-6-16 20:52
对滴~定义变量要放在执行语句之前!这是C的死知识,正好更楼主一起复习一遍!

呵呵,以前看过书、没看仔细,把小甲鱼前面的视频又跳过了、所以对基础知识不是太牢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-17 10:56:34 | 显示全部楼层
C99 就已经不必如此了 VC6 支持的标准太古老

另外那个叫做语句块首部 不是函数首部
  1. int func()
  2. {
  3. puts("AA");
  4. {
  5. int i;
  6. }
  7. }
复制代码
这样是没什么问题的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-17 20:27:19 | 显示全部楼层
记得书上说的 要把初始变量 定义在你要执行的语句的开头. 你不放在开头 电脑不知道 i 到底是什么 没办法执行:lol
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-19 23:06:24 | 显示全部楼层
我是师兄 发表于 2013-6-17 10:56
C99 就已经不必如此了 VC6 支持的标准太古老

另外那个叫做语句块首部 不是函数首部这样是没什么问题的

哦、那什么编译器支持C99标准啊,或者说可以怎样设置VC6为C89标准么?现在更通用的是什么标准
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-20 08:31:49 | 显示全部楼层
C语言不可以!!!!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-23 11:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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