我正在阅读 C++ 入门书,完全不明白一行:
using int_array = int[4];
typedef int int_array[4]; // This line
for (int_array *p = ia; p != ia + 3; ++p) {
for (int *q = *p; q != *p + 4; ++q)
cout << *q << ' '; cout << endl;
}
好的 typedef
与 using
相同。这是否意味着 int[4][4]
现在是 int
以及如何理解? for
循环中的 int_array
是什么类型?
谢谢
原文由 Somethone 发布,翻译遵循 CC BY-SA 4.0 许可协议
TL;博士
两者都在做同样的事情:将
int_array
定义为 4 数组的别名int
s理解语法
using
有一个很好的 A = B 符号,通常更容易理解。typedef
的符号并不完全落后。对于一个简单的typedef
但更复杂的
typedef
往往会蔓延。我怀疑语法是根据定义变量的方式建模的,但我找不到我将旧 K&R C 编程书的副本打包在哪里,目前无法查找。将
int_array
定义为 4int
s 的数组。拍打typedef
正面使
int_array
成为类型别名而不是变量。另一个例子,
将
intp
定义为指向int
的指针。将
intp
定义为指向int
的类型指针的别名。对于更复杂的数据类型,这变得很难看,因为
typedef
ed 别名的名称可能被埋在定义中间的某个地方。一个typedef
ed 函数指针例如:与使用
制作二维数组
如果你想要一个二维数组,你可以
或者您可以定义一个 int_array 数组
当然这意味着你可以
继续前进,直到奶牛回家,或者你已经包装了如此多的维度,以至于 医生 的大脑都融化了。