A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 傘が咲く 高级黑马   /  2014-4-22 12:57  /  1574 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 傘が咲く 于 2014-4-23 07:51 编辑
  1. #include <stdio.h>

  2. void test()
  3. {
  4.         int a = 3;
  5.         int *p;
  6.         p = &a;
  7.         int c;
  8.         c = *p;
  9.         printf("%d\n",c);
  10. }

  11. int main()
  12. {        
  13.         test();
  14.         return 0;
  15. }
复制代码


为什么此程序报出 error C2065: 'c' : undeclared identifier,运行环境是vc++

把test()函数中语句int c;放在p = &a;前面就不会产生这问题。求解这是为什么!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

10 个回复

倒序浏览
                 这个 程序 我在 Visual C++6.0 上运行 没错啊……
回复 使用道具 举报
表示完全没问题

无标题.png (44.96 KB, 下载次数: 16)

无标题.png
回复 使用道具 举报
表示你的编译环境可能是专门c的,可能是c90标准之类的,我记不住到底是哪一个标准了。但是它要求变量的定义都要放在最前面,即其他非定义代码的最前面,你前面的都是定义
  1. int a=3;
  2. int *p;
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
戒惜舍得 发表于 2014-4-22 13:56
这个 程序 我在 Visual C++6.0 上运行 没错啊……

我电脑上的win-tc  和vc++6.0都编译不通过,难道是我电脑有问题了{:3_58:}
回复 使用道具 举报
看看把name using space std;加上可不可以
回复 使用道具 举报
我电脑C-Free也很正常!
回复 使用道具 举报
你在保存文件时,他的后缀名为.cpp应该没有问题了,如果是.c结尾可能会出现问题
回复 使用道具 举报
谢谢大家!我会继续努力!
回复 使用道具 举报
C89标准规定C语言的变量定义必须放在其他语句之前

换C++就可以在任意地方定义了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马