संभव डुप्लिकेट:
C pointer to array/array of pointers disambiguationकौन सा * और [] सी में सबसे मजबूत बांधता है?
सी में, int *thing[5]
, पांच संकेत की एक सरणी है प्रत्येक पाँच पूर्णांक की एक सरणी के लिए एक पूर्णांक है, या एक सूचक की ओर इशारा करते?
संभव डुप्लिकेट:
C pointer to array/array of pointers disambiguationकौन सा * और [] सी में सबसे मजबूत बांधता है?
सी में, int *thing[5]
, पांच संकेत की एक सरणी है प्रत्येक पाँच पूर्णांक की एक सरणी के लिए एक पूर्णांक है, या एक सूचक की ओर इशारा करते?
[]
प्रति ट्रम्प C precedence table का मतलब है जिसका अर्थ है कि आपके पास पांच int पॉइंटर्स हैं।
शायद एक डुप्लिकेट है ... यह पूर्णांक के लिए पांच पॉइंटर्स की एक सरणी है; कार्यक्रम cdecl
एक समान प्रश्न में उद्धृत नौसिखिया के लिए उपयोगी हो सकता है:
cdecl> explain int *t[5];
declare t as array 5 of pointer to int
संदेह उपयोग कोष्टक में है - रखरखाव प्रोग्रामर धन्यवाद होगा
अनुपस्थित कोष्ठकों के साथ किसी भी स्पष्ट समूह, दोनों सरणी सबस्क्रिप्ट ऑपरेटर []
और समारोह कॉल ऑपरेटर ()
से पहले बाँध *
, तो
T *a[N]; -- a is an N-element array of pointer to T
T (*a)[N]; -- a is a pointer to an N-element array of T
T *f(); -- f is a function returning pointer to T
T (*f)(); -- f is a pointer to a function returning T
यह व्याकरण से इस प्रकार है (ले । N Harbison & स्टील, 5 एड, परिशिष्ट बी) से:
declarator: pointer-declarator direct-declarator pointer-declarator: pointer direct-declarator pointer: * type-qualifier-listopt * type-qualifier-listopt pointer direct-declarator: simple-declarator (declarator) function-declarator array-declarator function-declarator: direct-declarator (parameter-type-list) direct-declarator (identifier-listopt) array-declarator: direct-declarator [ constant-expressionopt ] direct-declarator [ array-qualifier-listopt array-size-expressionopt ] direct-declarator [ array-qualifier-listopt * ]
इसके अलावा: - सूचक के रूप में> घोषित बात पूर्णांक की सरणी से 5 'cdecl> पूर्णांक (* बात) [5] समझाने ' यह पॉइंटर को 5 इंच की एक सरणी के बारे में पूछता है जो उसने पूछा था। –