C Programming - Complicated Declarations - Discussion

Discussion Forum : Complicated Declarations - General Questions (Q.No. 12)
12.
What do the following declaration signify?
int (*ptr)[30];
ptr is a pointer to an array of 30 integer pointers.
ptr is a array of 30 integer function pointer.
ptr is a array of 30 integer pointers.
ptr is a array 30 pointers.
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
14 comments Page 1 of 2.

Ritesh anand said:   1 decade ago
Friends its a very simple one. int (*ptr) is nothing but a ptr which points to some single integer value.

Now int (*ptr)[30] is something interesting here u are declaring not one pointer to point some integer value.

Here you are declaring 30 pointers to point some integer values and these 30 pointers are stored in array and that's why int (*ptr)[30] is an array of 30 integer pointers.

Bishop said:   9 years ago
int *ptr[30]; //an array of 30 pointers (equivalent: int* ptr[30];).

int (*ptr)[30]; //a pointer to an array of 30 elements (int).

int *(*ptr)[30]; //a pointer to an array of 30 pointers (equivalent: int* (*ptr)[30];).

Satyakala said:   1 decade ago
Here (*ptr)[30] means it is an pointer to array of 30 integers not 30 integer pointers because it is not array of pointers.

Arjun Prasad said:   1 decade ago
In answer A:- it should be 30 "integers" instead of "integer pointers", then A correct.

Harish jangra said:   2 decades ago
i think 'c' is the correct answer to this problem.
can anyone explain me how 'a' is the correct answer?

Anil said:   1 decade ago
int (*ptr)[30]=pointer to array of 30 integers;
int *ptr[30]=ptr is an array of 30 integer pointer

Ferozee said:   1 decade ago
Pointer Array Concept i.e., *p[30] is pointer Array,means *p points to 30 integers of an Array.

Shireesh said:   1 decade ago
In answer A take 30 integers instead of integer pointers, then Ans is A.

Ram mohan said:   2 decades ago
*ptr[30] is a array of 30 pointers but
here mentioned that (*ptr)[30]

Vikas Sharma said:   1 decade ago
It should be "pointer to an array of 30 integers"


Post your comments here:

Your comments will be displayed after verification.