Teoria pt.1 Flashcards
(10 cards)
Cosa è il time-sharing e quando viene usato dal sistema operativo Unix?
Il time-sharing in Unix è la condivisione di una risorsa informatica tra molti utenti contemporaneamente tramite multiprogrammazione e multitasking.
Si possono assegnare due array con lo stesso numero di elementi dello stesso tipo tramite un assegnamento del tipo v1=v2? Perchè?
No, non è possibile assegnare due array con lo stesso numero di elementi dello stesso tipo tramite un assegnamento del tipo v1=v2. Questo perché gli array in C non sono assegnabili come variabili semplici. Per copiare il contenuto di un array in un altro è necessario utilizzare un ciclo for.
Cosa è l’overloading di un simbolo in un linguaggio di programmazione?
L’overloading in un linguaggio di programmazione permette di definire più di una versione di una funzione o di operatore con lo stesso nome, ma con diversi tipi di parametri o diversi numeri di parametri , consentendo al compilatore o all’interprete di selezionare automaticamente la versione appropriata in base ai parametri forniti quando la funzione o l’operatore viene chiamato. Questo rende il codice più flessibile e leggibile, consentendo di utilizzare lo stesso nome per operazioni simili su tipi di dati diversi.
Cosa sono i compilatori e gli interpreti?
I compilatori e gli interpreti sono due tipi di traduttori che convertono il testo di un programma scritto in un particolare linguaggio di programmazione nella corrispondente rappresentazione in linguaggio macchina. Nel processo di traduzione il compilatore traduce l’intero programma sorgente in un linguaggio adatto per l’esecuzione sulla macchina in un singolo passaggio, mentre l’interprete traduce ed esegue il codice sorgente una riga alla volta.
Come gestisce il C le espressione eterogenee?
Le espressioni eterogenee nel C vengono gestite per ordine di precedenza, andando a svolgere prima quelle operazioni con maggior priorità. Andando a considerare inoltre l’eventuale presenza di parentesi, poichè esse alterano l’ordine di precedenza, privilegiando in extremis il loro contenuto, per poi proseguire con il resto dei componenti dell’espressione.
Qual è il tempo di vita di una variabile definita in una procedura?
Il tempo di vita di una variabile definita in una procedura , nota anche come variabile locale, è limitata al tempo di esecuzione della procedura stessa. Questo significa che la variabile viene creata quando la procedura viene chiamata e distrutta quando la procedura termina. Pertanto, non è possibile accedere a tale variabile al di fuori della procedura in cui è stata definita.
Cosa succede quando si dichiara un intero short int (che come ordine di grandezza va da -32103 a 32103) e poi si effettua una somma che esce dall’intervallo di definizione? Quale risultato ci attendiamo?
Quando si dichiara un intero short int, il suo intervallo di valori va da -32.768 a 32.767. Se si effettua una somma che esce dall’intervallo di definizione, si verifica un overflow, ovvero il valore risultante non può essere rappresentato correttamente. In questo caso, ilrisultato può essere imprevedibile e dipendere dal compilatore utilizzato.
Cosa avviene se voglio assegnare un int a un float e viceversa?
In C, quando si assegna un valore int a una variabile float, il valore int viene convertito in un valore float prima dell’assegnazione. Questo processo è noto come conversione implicita.
Come si alloca dinamicamente memoria? Quando viene deallocata?
L’allocazione dinamica della memoria si riferisce all’allocazione di memoria per l’utilizzo di un programma durante la propria esecuzione e avviene con la funzione malloc() che restituisce un puntatore all’indirizzo dell’area di memoria allocata. La memoria allocata dinamicamente viene deallocata esplicitamente dal programmatore (funzione free()) o da un garbage collector.
Cosa sono i puntatori e a cosa servono?
I puntatori sono variabili che contengono l’indirizzo di memoria di un’altra variabile. Quando dichiariamo una variabile, a questa viene riservato un indirizzo di memoria. Un puntatore contiene l’indirizzo di tale variabile.