一些小问题

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];

原文地址:https://www.cnblogs.com/qmlm8844/p/2778581.html