prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 6.12

Q由于数组引用会退化为指针,如果arr是一个数组,那么arr&arr?


A类型。

在标准 C 中,&arr会产生一个指向整个数组的指针,类型为“指向 T 数组的指针”。(在 ANSI C 之前,&&arr通常会引发警告,并且通常被忽略。)在所有 C 编译器下,对数组的简单引用(没有显式&)会产生一个指向数组第一个元素的指针,类型为“指向 T 的指针”。

对于一个简单的数组

	int a[10];
对...的引用a类型为“指向int”,而&a是“指向 10 个ints”的数组的指针。对于二维数组,例如
	int array[NROWS][NCOLUMNS];
对...的引用array类型为“指向NCOLUMNS ints”的数组的指针,而&array类型为“指向NROWSs”的数组的指针。NCOLUMNS ints。”

另请参阅问题 6.36.136.18

参考文献:ISO Sec. 6.2.2.1, Sec. 6.3.3.2
Rationale Sec. 3.3.3.2
H&S Sec. 7.5.6 p. 198


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管