Machine-translated by Google. Questions are authored in English.
Top

Discussion

What does the following declaration mean?

int (*ptr)[10];

  • A.ptr is array of pointers to 10 integers
  • B.ptr is a pointer to an array of 10 integers
  • C.ptr is an array of 10 integers
  • D.ptr is an pointer to array

Answer: B

Correct answer: ptr is a pointer to an array of 10 integers

Read the declaration from the identifier outwards, respecting the parentheses. (*ptr) says ptr is a pointer; [10] then says to an array of 10; int gives the element type. Without the parentheses, int *ptr[10] would bind [10] first and mean an array of 10 pointers - the two are quite different, and ptr + 1 advances by 40 bytes in the first case and by one pointer in the second.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.