sono un fagiano...![]()
per curiosità p[0,2] che cosa faceva?
perchè non mi restituiva neanche un errore..
sono un fagiano...![]()
per curiosità p[0,2] che cosa faceva?
perchè non mi restituiva neanche un errore..
powered by GNU/Linux Gentoo
A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!
non lo soOriginariamente inviato da Guglie
sono un fagiano...![]()
per curiosità p[0,2] che cosa faceva?
perchè non mi restituiva neanche un errore..![]()
ma nn l'ho mai vista come sintassi.Cmq se sei su linux(gcc) tanti "errori" del genere non sono segnalati o sono tra i warning.
Modifica cmq anche il ciclo for come ti ho detto io sopra altrimenti nn và cmq
ciaoo![]()
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Nn ho mai provato e forse mi sbaglio,ma se un ciclo contiene una sola istruzione non si possono omettere le graffe?Originariamente inviato da andrea_NET-_DSL
si ma cmq nel programma postato da lardoman non và bene la sezione di accesso ai dati della matrice.
I due cicli for devono essere "uno dentro l'altro" come ho postato sopra
infatti per il for di "mezzo" si possono anche non mettere ma il primo deve "contenere" anche il secondo for...Originariamente inviato da Lardoman
Nn ho mai provato e forse mi sbaglio,ma se un ciclo contiene una sola istruzione non si possono omettere le graffe?
Io ho fatto sempre cosi' e visto cosi' dappertutto.Se ci pensi i due for lavorano insieme,scorrendo la matrice,quindi..
ciao![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Quello che dice Lardoman sull'omissione delle graffe è corretto.codice:#include <iostream> using namespace std; int main() { int p[3][3]; // inizializzazione for(int i=0; i<3; i++) for(int k=0; k<3; k++) p[i][k] = 0; p[0][2] = 1; // stampa a video for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) cout << "valore di [" << i << ", " << j << "]: " << p[i][j] << endl;
Slack? Smack!
come logica si.Originariamente inviato da Sergio Pedone
Quello che dice Lardoman sull'omissione delle graffe è corretto.codice:#include <iostream> using namespace std; int main() { int p[3][3]; // inizializzazione for(int i=0; i<3; i++) for(int k=0; k<3; k++) p[i][k] = 0; p[0][2] = 1; // stampa a video for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) cout << "valore di [" << i << ", " << j << "]: " << p[i][j] << endl;
Il for anche senza graffe comprende FINO E SOLO l'espressione successive.
Quindi il primo for comprende il secondo che a sua volta la stampa...ma su tutti i libri ho visto sempre con le graffe messe come ho fatto io.
Non ho mai provato cosi'...cmq una cosa in + che so
ciauz e grazie![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
La mia intenzione era di comfermare quanto detto da lardoman.
Personalmente, come te, utilizzo sempre le graffe, in modo
tale da non doverle aggiungere, nel caso in cui debba mettere
mano al codice.
Ciao.
Slack? Smack!
sisi certoOriginariamente inviato da Sergio Pedone
La mia intenzione era di comfermare quanto detto da lardoman.
Personalmente, come te, utilizzo sempre le graffe, in modo
tale da non doverle aggiungere, nel caso in cui debba mettere
mano al codice.
Ciao.
ciao![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Certamente,anch'io le metto sempre se nn altro perchè il codice è + ordinato.Originariamente inviato da Sergio Pedone
La mia intenzione era di comfermare quanto detto da lardoman.
Personalmente, come te, utilizzo sempre le graffe, in modo
tale da non doverle aggiungere, nel caso in cui debba mettere
mano al codice.
Ciao.
La mia era solo una puntualizzazione sul fatto che quel codice cmq dovrebbe funzionare.
Ciao![]()
Me l'ha spiegato Andrea Simonassi un po' di tempo fa, perchè l'avevo chiesto anch'io avendolo trovato su di un codice scritto da altri.Originariamente inviato da Guglie
sono un fagiano...![]()
per curiosità p[0,2] che cosa faceva?
perchè non mi restituiva neanche un errore..
La virgola serve a separare espressioni: praticamente tutto ciò che c'è prima della virgola viene semplicemente valutato. La parte successiva è la vera indicizzazione. Nel caso particolare p[0,2] è esattamente equivalente a scrivere p[2] ossia il puntatore al primo elemento della terza riga della matrice. Lo 0 viene semplicemente valutato ed essendo una costante ha una ed una sola valutazione: egli stesso!
Provate ad eseguire questo codice, che, all'apparenza, non sembra avere molto senso:
Questo è uno dei tanti aspetti oscuri del C (una delle tante schifezze che si possono fare in C), come questa:codice:#include <stdio.h> int main() { int p[3][3]; int i; for (i=0; i<3; i++) { *p[printf("Ciao, sono il primo elemento della riga %d\n", i), i] = 0; } return 0; }
Ciao.codice:#include <stdio.h> int main() { char *stringa = "Ciao a tutti\n"; int i = 0; for (;i["Cosa scriverà"];putchar(stringa[i++])); return 0; }![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza