一些小问题
typedef 用来给类型取一个新的名字,一般我们会这样用:
typedef int myint;则给int取了一个别名myint(并没有定义一个新的类型),可以用myint来定义int类型的变量。
typedef int* pint;则给int*定义了一个别名pint,可以用pint来定义int类型的指针变量。
发现这两种情况都是 类型新名在 原类型的后面。
但是以下情况不同。
typedef int intarray[10];这是给int [10]取了个别名intarray,直接用intarray定义有10个元素的int数组,如 intarray score;
也许 typedef int[10] intarray 更好理解,但事实不是,编译器不认。
类似的,在指针中也有和这种情况
int *ptr; double *ptr;一般定义指针是这样的,指针变量在后面,但是:
int (*ptr)[10];这句定义的是一个指针变量ptr,一个指向有10个int类型元素的数组的指针,而不是指针数组。
也许 int * [10] ptr更好理解,但事实不是,编译器也不认。
注:指针数组的定义方式如下:
int* ptr[10];