Рубрики

Часто задаваемые вопросы по программированию на C | Комплект 1

В чем разница между объявлением и определением переменной / функции
Ответ: Объявление переменной / функции просто объявляет, что переменная / функция существует где-то в программе, но память для них не выделена. Но объявление переменной / функции играет важную роль. И это тип переменной / функции. Поэтому, когда переменная объявлена, программа знает тип данных этой переменной. В случае объявления функции программа знает, каковы аргументы этой функции, их типы данных, порядок аргументов и тип возвращаемого значения функции. Так что это все о декларации. Что касается определения, когда мы определяем переменную / функцию, кроме роли объявления, она также выделяет память для этой переменной / функции. Поэтому мы можем думать об определении как о супер-наборе объявлений. (или объявление в качестве подмножества определения). Из этого объяснения должно быть очевидно, что переменная / функция может быть объявлена любое количество раз, но она может быть определена только один раз. (Помните основной принцип, что у вас не может быть двух местоположений одной и той же переменной / функции).

   // This is only declaration. y is not allocated memory by this statement 
  extern int y; 

  // This is both declaration and definition, memory to x is allocated by this statement.
  int x;

Чем отличаются спецификаторы классов хранения в C?
Ответ: авто, регистр, статический, внешний

Что такое область действия переменной? Как переменные ограничены в C ?
Ответ: Область действия переменной — это часть программы, где переменная может быть непосредственно доступна. В C все идентификаторы имеют лексическую (или статическую) область видимости. Смотрите это для более подробной информации.

Как вы будете печатать «Hello World» без точки с запятой?
Ans:

#include <stdio.h>

int main(void)

{

    if (printf("Hello World")) {

    }

}

См. Печать «Geeks for Geeks» без точки с запятой для ответа .

Когда мы должны использовать указатели в программе на C?
1. Получить адрес переменной
2. Для достижения передачи по ссылке в C: указатели позволяют различным функциям совместно использовать и изменять свои локальные переменные.
3. Передать большие структуры, чтобы избежать полной копии структуры.
4. Для реализации «связанных» структур данных, таких как связанные списки и двоичные деревья.

Что такое указатель NULL?
Ответ: NULL используется, чтобы указать, что указатель не указывает на правильное местоположение. В идеале, мы должны инициализировать указатели как NULL, если мы не знаем их значения во время объявления. Кроме того, мы должны сделать указатель NULL, когда указанная память освобождается в середине программы.

Что такое свисающий указатель?
Ответ : Dangling Pointer — это указатель, который не указывает на правильную ячейку памяти. Висячие указатели возникают, когда объект удаляется или освобождается, без изменения значения указателя, так что указатель по-прежнему указывает на место в памяти освобожденной памяти. Ниже приведены примеры.

// ПРИМЕР 1

int* ptr = (int*)malloc(sizeof(int));

..........................free(ptr);

  
// ptr теперь является висящим указателем и недопустимые операции, подобные следующим

*ptr = 10; // или printf ("% d", * ptr);

// ПРИМЕР 2

int* ptr = NULL

{

    int x = 10;

    ptr = &x;

}
// х выходит из области видимости и память, выделенная для х, теперь свободна.
// Итак, ptr теперь является висящим указателем.

Что такое утечка памяти? Почему этого следует избегать
Ответ: Утечка памяти происходит, когда программисты создают память в куче и забывают ее удалить. Утечки памяти являются особенно серьезными проблемами для таких программ, как демоны и серверы, которые по определению никогда не завершаются.

/ * Функция с утечкой памяти * /
#include <stdlib.h>

  

void f()

{

    int* ptr = (int*)malloc(sizeof(int));

  

    /* Поработай немного */

  

    return; / * Возврат без освобождения ptr * /

}

Что такое локальные статические переменные? Как они используются?
Ответ : Локальная статическая переменная — это переменная, время жизни которой не заканчивается вызовом функции, где она объявлена. Это распространяется на всю жизнь всей программы. Все вызовы функции используют одну и ту же копию локальных статических переменных. Статические переменные могут использоваться для подсчета количества вызовов функции. Кроме того, статические переменные получают значение по умолчанию как 0. Например, следующая программа печатает «0 1»

#include <stdio.h>

void fun()

{

    // статические переменные получают значение по умолчанию как 0.

    static int x;

    printf("%d ", x);

    x = x + 1;

}

  

int main()

{

    fun();

    fun();

    return 0;

}
// Вывод: 0 1

Что такое статические функции? Как они используются?
Ответ: В C по умолчанию функции являются глобальными. Ключевое слово «static» перед именем функции делает его статическим. В отличие от глобальных функций в C, доступ к статическим функциям ограничен файлом, в котором они объявлены. Поэтому, когда мы хотим ограничить доступ к функциям, мы делаем их статическими. Другой причиной создания статических функций может быть повторное использование одного и того же имени функции в других файлах. Смотрите это для примеров и более подробной информации.

Вам также может понравиться:

Часто задаваемые вопросы по программированию на C | Набор 2
Часто задаваемые вопросы по программированию на Java | Комплект 1
Наиболее часто задаваемые вопросы об интервью Amazon
Наиболее часто задаваемые вопросы об интервью Microsoft
Наиболее часто задаваемые вопросы об интервью Accenture
Часто задаваемые вопросы об интервью ООП
Часто задаваемые вопросы об интервью C ++
Часто задаваемые вопросы интервью СУБД | Комплект 1
Часто задаваемые вопросы интервью СУБД | Набор 2
Часто задаваемые вопросы об операционных системах Интервью | Комплект 1
Часто задаваемые вопросы о структуре данных.
Часто задаваемые вопросы об алгоритме интервью
Часто задаваемые вопросы Интервью компьютерных сетей
10 лучших алгоритмов в вопросах интервью

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

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

Часто задаваемые вопросы по программированию на C | Комплект 1

0.00 (0%) 0 votes