2011-09-08 37 views

cevap

10

arr, bir int* için değerlendiren bir ifadedir (bu, ünlü dizinin çürütücüsü olan "dizileridir" Ure).

&arr, int (*)[3] için değerlendiren bir ifadedir.

Dizi adları 'çürüme', sizeof veya & işleçlerine işlenenler dışında tüm ifadelerde dizinin ilk öğesinin işaretçilerine işaret eder. Bu iki işlem için, dizi isimleri 'arrayness' (C99 6.3.2.1/3 "Lvalues, diziler ve işlev göstergeleri") korur.

+1

+1: Ben de farklı bir tipte rağmen, her iki ifade aynı işaretçi adresi döndürebilir, işaret olur. –

0

Bu tam olarak aynı nedenden dolayı çalışmaz:

int i; 
int* pi = i; // error: no conversion from int to int*