Preguntas frecuentes de la entrevista de programación C | Serie 1

¿Cuál es la diferencia entre declaración y definición de una variable/función
? Respuesta:La declaración de una variable/función simplemente declara que la variable/función existe en algún lugar del programa pero la memoria no está asignada para ellos. Pero la declaración de una variable/función cumple un papel importante. Y ese es el tipo de la variable/función. Por lo tanto, cuando se declara una variable, el programa conoce el tipo de datos de esa variable. En caso de declaración de función, el programa sabe cuáles son los argumentos de esa función, sus tipos de datos, el orden de los argumentos y el tipo de retorno de la función. Así que eso es todo acerca de la declaración. En cuanto a la definición, cuando definimos una variable/función, además del rol de declaración, también asigna memoria para esa variable/función. Por lo tanto, podemos pensar en la definición como un superconjunto de declaraciones. (o declaración como un subconjunto de definición).

// Esta es solo una declaración. y no tiene memoria asignada por esta instrucción
extern int y;

// Esto es tanto declaración como definición, esta declaración asigna memoria a x.
intx;

¿Cuáles son los diferentes especificadores de clase de almacenamiento en C?
Respuesta: auto, registro, estático, externo

¿Qué es el alcance de una variable? ¿Cómo se miden las variables en C ?
Respuesta: El alcance de una variable es la parte del programa donde se puede acceder directamente a la variable. En C, todos los identificadores tienen un alcance léxico (o estático). Vea esto para más detalles.

¿Cómo imprimirá «Hello World» sin punto y coma?
Respuesta:

#include <stdio.h>
int main(void)
{
    if (printf("Hello World")) {
    }
}

Vea imprimir «Geeks for Geeks» sin usar un punto y coma para la respuesta .

¿Cuándo debemos usar punteros en un programa en C?
1. Para obtener la dirección de una variable
2. Para lograr pasar por referencia en C: Los punteros permiten que diferentes funciones compartan y modifiquen sus variables locales.
3. Pasar estructuras grandes para evitar la copia completa de la estructura.
4. Implementar estructuras de datos «enlazados» como listas enlazadas y árboles binarios.

¿Qué es el puntero NULL?
Respuesta: NULL se usa para indicar que el puntero no apunta a una ubicación válida. Idealmente, deberíamos inicializar los punteros como NULL si no conocemos su valor en el momento de la declaración. Además, debemos convertir un puntero en NULL cuando la memoria a la que apunta se desasigna en medio de un programa.

¿Qué es el puntero colgante?
Respuesta: El puntero colgante es un puntero que no apunta a una ubicación de memoria válida. Los punteros colgantes surgen cuando se elimina o desasigna un objeto, sin modificar el valor del puntero, de modo que el puntero todavía apunta a la ubicación de memoria de la memoria desasignada. Los siguientes son ejemplos.

// EXAMPLE 1
int* ptr = (int*)malloc(sizeof(int));
..........................free(ptr);
  
// ptr is a dangling pointer now and operations like following are invalid
*ptr = 10; // or printf("%d", *ptr);
// EXAMPLE 2
int* ptr = NULL
{
    int x = 10;
    ptr = &x;
}
// x goes out of scope and memory allocated to x is free now.
// So ptr is a dangling pointer now.

¿Qué es la fuga de memoria? Por qué debería evitarse
Respuesta: La fuga de memoria ocurre cuando los programadores crean una memoria en el montón y se olvidan de eliminarla. Las fugas de memoria son problemas particularmente serios para programas como demonios y servidores que, por definición, nunca terminan.

/* Function with memory leak */
#include <stdlib.h>
  
void f()
{
    int* ptr = (int*)malloc(sizeof(int));
  
    /* Do some work */
  
    return; /* Return without freeing ptr*/
}

¿Qué son las variables estáticas locales? ¿Cuál es su uso?
Respuesta: una variable estática local es una variable cuya vida útil no termina con una llamada de función donde se declara. Se extiende por la vida útil del programa completo. Todas las llamadas a la función comparten la misma copia de las variables estáticas locales. Las variables estáticas se pueden utilizar para contar el número de veces que se llama a una función. Además, las variables estáticas obtienen el valor predeterminado como 0. Por ejemplo, el siguiente programa imprime «0 1»

#include <stdio.h>
void fun()
{
    // static variables get the default value as 0.
    static int x;
    printf("%d ", x);
    x = x + 1;
}
  
int main()
{
    fun();
    fun();
    return 0;
}
// Output: 0 1

¿Qué son las funciones estáticas? ¿Cuál es su uso?
Respuesta: En C, las funciones son globales por defecto. La palabra clave «estática» antes del nombre de una función la convierte en estática. A diferencia de las funciones globales en C, el acceso a las funciones estáticas está restringido al archivo donde se declaran. Por lo tanto, cuando queremos restringir el acceso a las funciones, las hacemos estáticas. Otra razón para hacer que las funciones sean estáticas puede ser la reutilización del mismo nombre de función en otros archivos. Ver esto para ejemplos y más detalles.

También te puede interesar:

Preguntas frecuentes de la entrevista de programación C | Conjunto de 2
preguntas frecuentes de la entrevista de programación Java | Conjunto 1
Las preguntas más frecuentes de la entrevista de Amazon Las
preguntas más frecuentes de la entrevista de Microsoft Las preguntas más frecuentes de la entrevista
de Accenture Preguntas
frecuentes de la entrevista OOP Preguntas
frecuentes de la entrevista C++ Preguntas
frecuentes de la entrevista DBMS | Conjunto 1
Preguntas de entrevista DBMS más frecuentes | Conjunto de 2
preguntas frecuentes de la entrevista sobre sistemas operativos | Conjunto 1
Preguntas de entrevista de estructura de datos más frecuentes.
Preguntas frecuentes de la entrevista sobre algoritmos
Preguntas frecuentes de la entrevista sobre redes informáticas Los
10 algoritmos principales en las preguntas de la entrevista

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *