typedef int a[10]; int str[10]; a b; a* c[10]; a* d; 不懂

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typedef int a[10]; int str[10]; a b; a* c[10]; a* d; 不懂相关的知识,希望对你有一定的参考价值。

#define *a int[10]
是不是错误的定义啊?

#define *a * int[10]
是不是也是错的啊?

参考技术A typedef int a[10];
定义了一个叫a的类型,是10个元素的int数组。(可以用这个类型定义别的变量了)
int str[10];
定义了str数组
a b;
定义了b数组,为a型,即10元素int数组。
a* c[10]; a* d;
c为数组指针数组,元素为a型数组指针。d为数组指针。

针对你的补充问题:
#define 宏定义,实际是定义一段替换代码来代替某个变量或者含参数变量。这两者的定义规则和变量以及函数的定义规则相同。不可以以*开头的。所以
#define *a 不管后面跟什么都是错误的。本回答被提问者采纳

以上是关于typedef int a[10]; int str[10]; a b; a* c[10]; a* d; 不懂的主要内容,如果未能解决你的问题,请参考以下文章

宏定义陷阱与typedef

define与typedef

c语言typedef int Arrty[10] 是啥意思 然后Arrty f,c;起到了啥作用

C语言typedef的用法(转)

比如像下面: typedef struct StackNode SElemType data; struct StackNode * next; StackNode

typedef和Block