Newsgroup: it.comp.lang.c
Titolo: Printf e scanf

Salve ragazzi, sono nuovo del C, ed ancora non ho capito come usare le
funzioni, printf e scanf. Prima di tutto quando uso scanf, devo usare & per
ogni tipo di variabile, anche quando la variabile è un vettore, che quindi
implicitamente è un puntatore? Stessa cosa, quando uso la printf, ho notato
che quando stampo una variabile di tipo intero, se uso & mi viene
visualizzato un numero molto grande e solo se tolgo & posso visualizzare il
dato correttamente. Spero che qualcuno vorrà risolvere i miei dubbi, ho
sempre usato il C++ e lì usando la cin e la cout, era tutto molto più
comodo, e mi pongo la domanda perchè in C bisogna complicarsi la vita, con
la printf e scanf :-)
-- 
ICQ # 84624356
MSN 
lello...@katamail.com
Yahoo ilpuntatore

 ha scritto nel messaggio
news:nJaFe.16892$a5.2...@twister2.libero.it...

Ciao,
il C è molto più potente del C++ perchè è di più basso livello.
Il simbolo & posto prima di un nome di una variabile è un operatore che
significa letteralmente "indirizzo di". Quindi se A è una variabile, &A
indica l'indirizzo in memoria di A. Ok?
Se con la printf stampi &A, avrai un numero molto grande perchè indica
precisamente l'indirizzo della prima cella di memoria che contiene A.
La & va usata anche con i vettori.
Ma attenzione: i vettori e i puntatori sono due cose diverse!
I vettori sono degli "insiemi di variabili" dello stesso tipo, mentre i
puntatori sono variabili che contengono degli indirizzi.
ciao
Brunix

 La & va usata anche con i vettori.
Non mi sono ben spiegato, quando uso l'operatore & con una stringa, in una
printf, tutto funziona correttamente, invece quando il tipo di variabile da
stampare è un intero, devo omettere l'operatore &, altrimenti viene
visualizzato il numero molto grande che ti dicevo :-)


 
Quel numero molto grande e' il puntatore all'intero o meglio il riferimento
al dato, turandosi il naso diciamo che' e' l'indirizzo a cui e' allocato.
In C le stringhe NON esistono,  mentre esistono i vettori di caratteri che
chiamiamo stringhe se terminate da carattere \0.
La scanf ... e' identica alla printf come uso, ma il mio consiglio e'
non usarla, non ha type checking ed e' fonte di problemi, ma questa
e' la mia opinione.
cmq
bash-2.05b$ man printf
Bye

 il C è molto più potente del C++ perchè è di più basso livello.
A voler essere pignoli si potrebbero tirare in mezzo Bohm-Jacopini ;)
In ogni caso in C++ si puo` programmare a basso livello esattamente come
in C, anche se non concordo con la deduzione che il poter programmare a
basso livello comporti una maggiore potenza espressiva.
Anzi, visto che il C++ e` un linguaggio multiparadigma che facilita
molto la programmazione OO si potrebbe dire che il C++ e` piu` "potente"
del C (sicuramente piu` complesso :p).
Luca
-- 
Home: 
http://kronoz.cjb.net
You and me baby ain't nothin' but mammals
So let's do it like they do on the Discovery Channel

 il C č molto piů potente del C++ perchč č di piů basso livello.
Questo non significa potenza, senza contare che tutto cio' che fai in C
lo puoi fare in C++ e non viceversa
Se poi vuoi un linguaggio "potente" passa all'assembly
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 dato correttamente.
        int i=42;
	printf("%d",i); /* stampa i */
	printf("%p",(void*)&i); /* stampa il indirizzo di i */
-- 
Horst