Рубрики

C | Массивы | Вопрос 6

Предположим, следующее объявление переменной C

int *A [10], B[10][10];  

Из следующих выражений
И. А. [2]
II A [2] [3]
III B [1]
IV B [2] [3]
которые не приведут к ошибкам времени компиляции, если они будут использоваться в качестве левых частей операторов присваивания в программе на Си (GATE CS 2003)?

(A) только I, II и IV
(B) только II, III и IV

(C) только II и IV
(D) только IV

Ответ: (А)
Объяснение: см. Следующее для объяснения.

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]); 
  return 0;
}

Тест на этот вопрос

Рекомендуемые посты:

C | Массивы | Вопрос 6

0.00 (0%) 0 votes