Aiuto con i puntatori in C

llwC
Ragazzi sono di nuovo io scusatemi se vi do continuamente fastidio :oops: ... ma potreste darmi una mano con i puntatori non ho capito come usarli...grazie :smt023 :smt023 :smt023

Risposte
garnak.olegovitc1
Salve llwC,

"llwC":
Ragazzi sono di nuovo io scusatemi se vi do continuamente fastidio :oops: ... ma potreste darmi una mano con i puntatori non ho capito come usarli...grazie :smt023 :smt023 :smt023


usarli in che senso? Comunque ti segnalo qui alcuni appunti, magari ti spiegano come "usarli".

Cordiali saluti

llwC
Grazie mille... Scusami per il disturbo... cmq ho capito la loro funzione e sono riuscito ad applicarli.
Però ora ho un' altro problema con il seguente programma:
#include<stdio.h>
int main(void){
char *pianeti[]={"Mercurio","Venere","Terra","Marte","Giove","Saturno","Urano","Nettuno"};
for(pianeti=0;pianeti <=7;pianeti++){
}
printf("%c",*pianeti);
system ("pause");
return 0;
})

Ragazzi vi prego aiutatemi poi vi giuro che non scrivo più niente per un mese :!: :!: :oops:

ebrunaway
Ciao, non capisco cosa stai cercando di fare.
Hai provato a compilare? hai visto che errori ottieni? Sono abbastanza elementari e l'output della console dovrebbe farti capire in cosa stai sbagliando. Solo le condizioni del for racchiudono ciascuna un errore diverso. Anche se fosse corretto, cicla a vuoto(non c'e' il corpo del ciclo), la printf se deve stampare una stringa e' scorretta, oltre al fatto che stai facendo confusione tra il significato di * e &. La system e' deprecata, alla graffa che chiude il blocco del main segue una parentesi tonda(magari un errore di battitura dettato dalla fretta).
Magari mi sbaglio, ma non sembra che abbia capito molto bene come usare i puntatori.
Se hai qualche dubbio in particolare puoi chiedere, scrivere "non ho capito come usare i puntatori, aiuto" produce scarsi risultati, perche' nessuno e' nella tua testa e capisce in cosa incontri maggiore difficolta'.

nessuno.nobody
#include<stdio.h>
int main(void)
{
    char *pianeti[] = {"Mercurio","Venere","Terra","Marte","Giove","Saturno","Urano","Nettuno"};
    int i;
    for(i=0;i <8;++i)
          puts(pianeti[i]);

     while(getchar() != '\n')
         ;
    return 0;
}


Così il codice ha un po' più di senso.

Prima di metter mano al codice, per lo meno studia la sintassi dei costrutti che devi utilizzare!

llwC
Scusa ho studiato da poco queste cose... cmq Grazie per l' aiuto

llwC
scusa ma come fai a non far chiudere il programma senza "system("pause");" ? ps: scusa per l' ignoranza.

#include <stdio.h>
#define N 10
#define C 20
int main(void){
char a[N] = {'L','u','g','l','i','o'},*p;

for (p = &a[0];p < &a[N];p++){

printf("%c",*p);
}


return 0;
}

Ryukushi1
"llwC":
scusa ma come fai a non far chiudere il programma senza "system("pause");" ? ps: scusa per l' ignoranza.

#include <stdio.h>
#define N 10
#define C 20
int main(void){
char a[N] = {'L','u','g','l','i','o'},*p;

for (p = &a[0];p < &a[N];p++){

printf("%c",*p);
}


return 0;
}


In C i programmi si chiudono solo con return0; (in realtà non servirebbe neanche, ma è buona norma metterlo)

llwC
Grazie per la risposta

hamming_burst
"llwC":
scusa ma come fai a non far chiudere il programma senza "system("pause");" ? ps: scusa per l' ignoranza

system("pause");

è una funzione che viene inserita da qualche vecchio IDE, come il famoso (in senso negativo) DEV-C++. Penso tu sia abituato a premere un tasto per terminare il programma, quella funzione serve a mantenere in wait il programma in una finestra.
E' una funziona (come è stato scritto) deprecata e non utilizzata se non da pochi IDE, ma consiglio di NON inserirla al di fuori di esso, non facente parte dello standard, funziona solo in sistemi Windows (essendo una funzione di sistema). In alcuni IDE tale funzione è stata sostituita da alcune funzioni delle libreria conio.h, stesso discorso utilizzarla solo in caso di quegli IDE e nulla più (se non proprio dimenticarsene, farai programmi più portabili). Es. in linux non avrebbe nessun senso.

"Ryukushi":

In C i programmi si chiudono solo con return0; (in realtà non servirebbe neanche, ma è buona norma metterlo)

Nì.
E' vero per il valore di ritorno, ma non inserirlo è profondamente sbagliato secondo lo standard. Qualche compilatore lo permette solo per compatibilità o lo inseriesce a compile-time esso stesso per "aiutare" l'utente sbadato. :-)

llwC
Grazie per questa eloquente risposta

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.