aiuto raga.....

Messaggioda ing_mecc » 17/07/2006, 08:31

Ciao raga... dopo tanto tempo sono tornato con un bel questo ... vediamo chi mi aiuta....

Considerate le seguenti dichiarazioni di variabili :

int a;
int b;
int *p1=&a;
int *p2=&b;

si dica quali delle seguenti assegnazioni sono corrette e quali no :

a)* p1= *p2;
b)p1=*p2;
c)p1=p2;
d)*p2=p1;

Grazie per l'aiuto.... :lol:
"..Io sono l'ispettore capo Derrick, lui è Klein.."
ing_mecc
New Member
New Member
 
Messaggio: 14 di 92
Iscritto il: 07/03/2006, 17:02
Località: abito nell'operoso nord-est

Re: aiuto raga.....

Messaggioda anonymous_be1147 » 17/07/2006, 10:38

ing_mecc ha scritto:si dica quali delle seguenti assegnazioni sono corrette e quali no :

a)* p1= *p2;
b)p1=*p2;
c)p1=p2;
d)*p2=p1;

Direi
  • a) corretta: viene assegnato ad a il valore di b
  • b) sbagliata: viene assegnato ad un puntatore un valore int invece dell'indirizzo di una variabile int
  • c) corretta: viene assegnato a p2, l'indirizzo (della variabile int) contenuto in p1
  • d) sbagliata: viene assegnato alla variabile di tipo int puntata da p2 non un valore int, bensì un indirizzo (del puntatore p1)
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 117 di 3226
Iscritto il: 02/03/2006, 20:20

Messaggioda gigilatrottola » 17/07/2006, 15:36

Io credo che l'ultima sia corretta, nel senso che un indirizzo di memoria è fondamentalmente un intero (è un numero che indica la posizione in memoria) e quindi per la macchina stai assegnando un intero ad un intero.

Quindi credo che sintatticamente sia corretto, ma non semanticamente.

Tipica domanda bas...da da esame, per capirci :)
Avatar utente
gigilatrottola
Junior Member
Junior Member
 
Messaggio: 70 di 223
Iscritto il: 21/08/2005, 15:54

Messaggioda anonymous_be1147 » 17/07/2006, 17:14

gigilatrottola ha scritto:Io credo che l'ultima sia corretta, nel senso che un indirizzo di memoria è fondamentalmente un intero (è un numero che indica la posizione in memoria) e quindi per la macchina stai assegnando un intero ad un intero.

Chiaro, per la macchina non hanno alcun significato tutti quei bit. E ragionando allo stesso modo sarebbero tutti assegnamenti accettabili. :-D
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 118 di 3226
Iscritto il: 02/03/2006, 20:20

Messaggioda ing_mecc » 17/07/2006, 19:02

scusate ma non capisco più nulla... ricapitolando ... :roll: :roll:
"..Io sono l'ispettore capo Derrick, lui è Klein.."
ing_mecc
New Member
New Member
 
Messaggio: 15 di 92
Iscritto il: 07/03/2006, 17:02
Località: abito nell'operoso nord-est

Messaggioda anonymous_be1147 » 17/07/2006, 20:39

Ricapitolando: se è richiesto che un programma con quelle istruzioni funzioni le sole assegnazioni corrette sono la a) e c), come spiegato. Tuttavia, un compilatore "distratto" potrebbe compilare lo stesso un programma contenente le assegnazioni b) e c) e tu ti accorgeresti che qualcosa non va solo in fase di esecuzione o dai risultati ottenuti (ammesso, in questo caso, che il programma riesca a terminare con successo).
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 119 di 3226
Iscritto il: 02/03/2006, 20:20

Messaggioda gigilatrottola » 17/07/2006, 20:55

ing_mecc ha scritto:scusate ma non capisco più nulla... ricapitolando ... :roll: :roll:

Ricapitolando, se ti capitasse un esercizio del genere in un esame ed il testo non dice nulla, chiedi sempre se si intende corretto sintatticamente (il codice compila?) o corretto semanticamente (compila, ma... ha senso?) perchè ci sono linee di codice che la macchina ti accetta perchè grammaticalmente sensate, ma che in realtà non ne hanno molto.

Ad esempio la D... è uno dei tipici errori che uno fa lavorando coi puntatori e su cui perde un pomeriggio facendo debug, proprio perchè per la macchina è un'assegnazione corretta.
Avatar utente
gigilatrottola
Junior Member
Junior Member
 
Messaggio: 71 di 223
Iscritto il: 21/08/2005, 15:54

Messaggioda ing_mecc » 18/07/2006, 09:58

grazie raga..... mi avete chiarito le idee... questo era un esercizio del compito.... e come risposta ho scritto che quella giusta era la a). Speriamo vada bene... faccio l'orale e vi saprò dire.. ciauzzzzzz..
"..Io sono l'ispettore capo Derrick, lui è Klein.."
ing_mecc
New Member
New Member
 
Messaggio: 16 di 92
Iscritto il: 07/03/2006, 17:02
Località: abito nell'operoso nord-est

Messaggioda anonymous_be1147 » 18/07/2006, 18:29

Anche la b) è corretta secondo me. In ogni caso, in bocca al lupo per domani! :D
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 120 di 3226
Iscritto il: 02/03/2006, 20:20


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite