在这行代码中,`const char*yes [5]`代表什么?

con*_*ong 5 c++ typedef

我对c ++中的typedef有疑问

例如:

typedef const char* yes[5];
Run Code Online (Sandbox Code Playgroud)

typedef是否给出了const char*的替代名称,所以const char*的替代名称是yes[5]?哪些呢yes[5]在这里代表?以及如何创建两个yes数组并初始化两个中的一个?

Ben*_*oit 9

不.这声明了yes一个五个数组的类型const char * .

请参阅此链接const char *yes[5];在文本区域内键入内容.


unw*_*ind 7

不,这yes为一个包含常量字符数据的5个指针的数组创建了一个新名称.

想到它的方法是typedef看起来像声明之后的表达式,而声明中的名称被认为是新类型的名称,即被声明的类型.

所以typedef int x;成为x一个新的名字int.这不会随阵列而改变.

  • 实际上,语法是一个包含指向const char的5个指针的数组,因为const char*与char const*相同 (2认同)