Saturday, 25 February 2017

GATE EXAM PREPARATION IN "C" - (GATE CS 2003)

Assume the following C variable declaration
 int *A [10], B[10][10];  
Of the following expressions
I A[2]
II A[2][3]
III B[1]
IV B[2][3]
which will not give compile-time errors if used as left hand sides of assignment statements in a C program

a) I, II, and IV only
b) II, III, and IV only
c) II and IV only
d) IV only
Answer (a)
See below program

int main()
{
  int *A[10], B[10][10];   
  int C[] = {12, 11, 13, 14};
 
  /* No problem with below statement as A[2] is a pointer
     and we are assigning a value to pointer */
  A[2] = C;
 
  /* No problem with below statement also as array style indexing
      can be done with pointers*/
  A[2][3] = 15;
 
  /* Simple assignment to an element of a 2D array*/
  B[2][3]  = 15;
 
  printf("%d %d", A[2][0], A[2][3]);
  getchar();

No comments:

Post a Comment