Рубрики

Вывод программ на C | Набор 10

Прогнозировать выход следующих программ.

Уровень сложности: Новичок

Вопрос 1

#include<stdio.h>

int main() 

{

   typedef int i;

   i a = 0;    

   printf("%d", a);

   getchar();

   return 0;

}    

Выход: 0
Нет проблем с программой. Он просто создает пользовательский тип i и создает переменную a типа i .

вопрос 2

#include<stdio.h>

int main() 

{

  typedef int *i;

  int j = 10;

  i *a = &j;    

  printf("%d", **a);

  getchar();

  return 0;

}    

Вывод: Ошибка компилятора -> Инициализация с несовместимым типом указателя.
Строка typedef int * i делает i типом int *. Таким образом, декларация означает является указателем на указатель. Сообщение об ошибке может отличаться на разных компиляторах.

Вопрос 3

#include<stdio.h>

int main() 

{

  typedef static int *i;

  int j;

  i a = &j;    

  printf("%d", *a);

  getchar();

  return 0;

}    

Вывод: Ошибка компилятора -> Несколько классов хранения для.
В Си typedef рассматривается как класс хранения . Сообщение об ошибке может отличаться на разных компиляторах.
вопрос 2

#include<stdio.h>

int main() 

{

  typedef int *i;

  int j = 10;

  i a = &j;    

  printf("%d", *a);

  getchar();

  return 0;

}  

Выход:
10

Пожалуйста, пишите комментарии, если вы найдете какие-либо неправильные ответы / объяснения, или вы хотите поделиться дополнительной информацией по темам, обсужденным выше.


Ссылки:

http://www.itee.uq.edu.au/~comp2303/Leslie_C_ref/C/SYNTAX/typedef.html
http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03sc03.htm
http://msdn.microsoft.com/en-us/library/4x7sfztk.aspx

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

Вывод программ на C | Набор 10

0.00 (0%) 0 votes