您的位置:首页 > 编程语言 > C语言/C++

C语言类型判断

2018-03-13 15:56 281 查看

类型判断:

声明一种类型后,特别是复杂的类型时,判断的方法为:

以标识符为起点 先右后左 碰到'()'掉头 所有路径只走一次。

举例分析

int a[10][2]

a为标识符,往右走遇到中括号'[',说明a为数组,对于数组,关心的是数组元素的个数和元素类型,继续往右走可以发现元素个数为10个,类型呢?往右走遇到’[‘,说明类型又是一个数组,同样往右走发现该数组为2个元素,到底后往回走,前面走过的都去掉,发现元素类型为整型。所以a的类型为包含10个元素的数组,每个元素为包含2个整型元素的数组。

int (*a)[10]

a为标识符,往右走遇到’(‘后往回走遇到’*’标明a的类型为指针,对于指针,关心的是指针指向的类型,此时继续走后遇到’(‘再往回走(之前走过的都去掉),遇到’[‘说明指针指向的类型为数组,什么样的数组呢?往下走发现是10个整型元算的数组。所以,a为一个指向包含10个整型元素数组的指针。

int *(*a)[10]

a为指针,指向包含10个元素的数组,而该数组元素为整型指针;

int *(**a)[10]

a为指针,指向一个指针,被指向的指针指向一个包含10个元素的数组,数组元素为整型指针;

int a(char *,int)

a为函数,函数的第一个形参为char型指针第二个为整型,返回值为整型;

int a(char ,int)

a为函数,函数的第一个形参为char型指针第二个为整型,返回值为整型指针;

int (a)(char ,int)

a为指针,指向一个函数,而这个函数的第一个形参为char型指针第二个为整型,返回值为整型;

int (a[10])(char ,int)

a为包含10个元素的数组,数组的元素为指针,指针指向的类型为函数,而这个函数的第一个形参为char型指针第二个为整型,返回值为整型;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 类型判断