C语言不能在赋值之后再定义变量么?

elemusic 2011-09-09 09:55:48
以前没注意过这种细节,VS2008环境,C文件编译这个出错。

把int c = 8;提到前面就好了。或者把b = 7注释掉。
C++下无此问题。请教是怎么回事?有这种规定么?


#include <stdio.h>


int main()
{
int a = 5;
int b = 6;
b = 7;
int c = 8;

return 0;
}

...全文
341 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahnupeng 2014-05-21
  • 打赏
  • 举报
回复
应该是先定义,再单独赋值,或者直接定义并赋值int a=7;
尘缘udbwcso 2011-09-09
  • 打赏
  • 举报
回复
以前的不支持
C99支持
xunxun 2011-09-09
  • 打赏
  • 举报
回复
VC不支持C99
quwei197874 2011-09-09
  • 打赏
  • 举报
回复
写c必须在第一行定义变量
东莞某某某 2011-09-09
  • 打赏
  • 举报
回复
是的,编译器的行为和语言标准扭打在一块了,以前在.cpp写很随意,但.c就要注意了
ericming200409 2011-09-09
  • 打赏
  • 举报
回复
c99 应该是支持的吧? 难道老的标准不支持这样吗? 我写循环的时候,一直都将循环变量的定义放在循环内,也没发现出错啊
elemusic 2011-09-09
  • 打赏
  • 举报
回复
看过两本C语言的书,比较走马观花,
The C Programming Language
C Traps and Pitfalls
好像没注意提到过这个,求楼上推荐一本有这种细节的C语言书籍。
taodm 2011-09-09
  • 打赏
  • 举报
回复
楼主想玩c就找本c教材认真看下。c和c++在细微处差别还是挺多挺大的。

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧