C语言typedef看不明白的错误
用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文件下都可以编译通过。求解释
[解决办法]
c里面变量的定义只能在执行代码之后。
[解决办法]
C语言定义变量的语句(a* b;)只能放在代码块的前面,而C++比较自由。
[解决办法]
额,说反了,应该在之前。。c++没有这个问题,只要在使用之前定义就行。
[解决办法]
这个问题和typedef没有关系 问题所在是 c语言是所有的变量必须先声明,才能进行程序编写,否则编译出错
而C++允许随时随地 想定义变量就定义变量,因此编译不出错。
蛋疼的C++。。。。越来越不喜欢C++