2016-03-27 9 views
1

Son kezFark * x [10] ve int (x *) biz programlama ve soruların birinde bir testi vardı [10]

int *x[10]; 

ve

int (*x)[10]; 
başlatılıyor arasındaki fark oldu

Bunu bana açıklayan var mı?

+2

[C İşletmen Önceliği] 'ne göz atın (http://en.cppreference.com/w/c/language/operator_precedence) –

+0

@Joshua: Bunlar nedir? '* X [10]' ve '(* x) [10] "" olması gerekiyordu? Declertors veya ifadeler? Sorunuz belirsizdir ve bu belirsizlik çözülene kadar belirli bir cevaba izin vermez. – AnT

+0

ah Bildiricilerin olduğunu belirtmeyi unuttum. int * x [10] ve int (* x) [10]. – Joshua

cevap

4
Type *x[10]; 

Type 10 işaretçiler bir dizi olarak x tanımlar. Yani x kendisi, Type işaretçileri içeren bir dizidir. Öte yandan,

Type (*x)[10]; 

dizi-10 Type arasında bir işaretçi olarak x tanımlar. Dolayısıyla, x, 10 numaralı bir dizinin varlığını işaret eder ve dizi, Type türünde nesneler içerir. C'deki karmaşık beyanların nasıl okunacağına dair mükemmel bir tanıtım için this numaralı telefona bakın ve ayrıca cdecl.org'u deneyin.

+1

Teşekkürler. Farkı iyice açıklayan hiçbir şey bulamadım. Bu sorumu yanıtladı. – Joshua

+0

@Joshua Hoşgeldin, yardım ettiğine sevindim. – vsoftco

+0

Yani özünde Tip (* x) [10]; x ile aynıdır [10]; ?? – user2419083