C语言typedef看不明白的错误

子虚 2012-08-10 04:31:26
用VC++6.0写了一段测试typedef的代码:
#include <stdio.h>

typedef int a[10];

void main()
{
a c;
c[0] = 89;
a* b;
b = &c;
printf("%d\n", *b[0]);
}
将代码保存在.c文件内,编译出错,但是互换两行代码后却通过了,互换后如下:
#include <stdio.h>

typedef int a[10];

void main()
{
a c;
a* b;
c[0] = 89;
b = &c;
printf("%d\n", *b[0]);
}

上面的两种代码放在.cpp文件下都可以编译通过。求解释
...全文
125 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gonefar 2012-08-10
  • 打赏
  • 举报
回复
可能你的编译器使用的规范还是老的吧。c99现在也支持在使用时定义变量
xxb249 2012-08-10
  • 打赏
  • 举报
回复
这个问题和typedef没有关系 问题所在是 c语言是所有的变量必须先声明,才能进行程序编写,否则编译出错
而C++允许随时随地 想定义变量就定义变量,因此编译不出错。
蛋疼的C++。。。。越来越不喜欢C++
hu513406245 2012-08-10
  • 打赏
  • 举报
回复
额,说反了,应该在之前。。c++没有这个问题,只要在使用之前定义就行。
图灵狗 2012-08-10
  • 打赏
  • 举报
回复
C语言定义变量的语句(a* b;)只能放在代码块的前面,而C++比较自由。
hu513406245 2012-08-10
  • 打赏
  • 举报
回复
c里面变量的定义只能在执行代码之后。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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