Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Abbiamo provato la Gigabyte Radeon RX 9070 GRE Gaming OC, nuova proposta RDNA 4 che si inserisce tra GeForce RTX 5060 Ti e RTX 5070. Prestazioni solide in rasterizzazione e ray tracing, frequenze elevate grazie all'overclock di fabbrica e raffreddamento efficace: ecco come si comporta nei nostri test.
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare
Con tripla lente, tracking sincronizzato, visione notturna a colori e controllo locale senza abbonamenti, la OMVI 3i WiFi porta la sicurezza domestica a un livello molto più moderno, ma senza trasformarla in un sistema complicato da installare o usare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-09-2003, 09:54   #1
::tony design
Senior Member
 
L'Avatar di ::tony design
 
Iscritto dal: May 2002
Città: Prov. di Torino
Messaggi: 457
Problemi con Output di un programma in C

Devo iniziare il 2° anno di informatica:
questo è l'esercizio di C:

----------------------
Qual è l'output del seguente frammento di codice ?

Codice:
#include <stdio.h>

int main()
{
     int V[] = {1,3,5,7,9};
     int *p;

     printf("%d\n", V[1]);
     printf("%d\n", *(V+2));
     p = V+1;
     printf("%d\n", *p);
     printf("%d\n", *(p+2));
     p = &V[1];
     printf("%d\n", *p);
     printf("%d\n", *p+1);
     getch();
}
L'output ho visto che è:

3
5
3
7
3
4

qualcuno mi spiega passaggio per passaggio perchè ??
per esempio cosa significa *(V+2) ????

Garzie a tutti
::tony
__________________
::tony design
::tony design è offline   Rispondi citando il messaggio o parte di esso
Old 14-09-2003, 10:18   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non chiamarlo problemi di output xchè sono problemi di comprensione del linguaggio

V è un vettore di 5 elementi...
p è un puntatore ad intero...

Nella prima printf stampa V[1] cioè 3...
Nella seconda stampa *(V+2) cioè il contenuto (*) dell'indirizzo puntato da V+2... V equivale all'indirizzo di V[0]...quindi V+2 equivale all'indirizzo di V[2]...
p = V + 1 assegna a p l'indirizzo di V[1] (V+1 equivale a &V[1])...
La terza printf stampa il contenuto (*) dell'indirizzo puntato da p, cioè V[1]...
La quarta stampa il contenuto (*) dell'indirizzo puntato da p+2, cioè V[3]...

p = &V[1] assegna a p l'indirizzo (&) di V[1]...
La quinta printf stampa il contenuto (*) di p...cioè V[1]...
La sesta stampa il contenuto (*) di p (cioè V[1]) e ci aggiunge 1...cioè stampa 4...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-09-2003, 10:41   #3
::tony design
Senior Member
 
L'Avatar di ::tony design
 
Iscritto dal: May 2002
Città: Prov. di Torino
Messaggi: 457
Quote:
Originariamente inviato da cionci
Non chiamarlo problemi di output xchè sono problemi di comprensione del linguaggio

V è un vettore di 5 elementi...
p è un puntatore ad intero...

Nella prima printf stampa V[1] cioè 3...
Nella seconda stampa *(V+2) cioè il contenuto (*) dell'indirizzo puntato da V+2... V equivale all'indirizzo di V[0]...quindi V+2 equivale all'indirizzo di V[2]...
p = V + 1 assegna a p l'indirizzo di V[1] (V+1 equivale a &V[1])...
La terza printf stampa il contenuto (*) dell'indirizzo puntato da p, cioè V[1]...
La quarta stampa il contenuto (*) dell'indirizzo puntato da p+2, cioè V[3]...

p = &V[1] assegna a p l'indirizzo (&) di V[1]...
La quinta printf stampa il contenuto (*) di p...cioè V[1]...
La sesta stampa il contenuto (*) di p (cioè V[1]) e ci aggiunge 1...cioè stampa 4...
Ti ringrazio

ciao ciao
::tony
__________________
::tony design
::tony design è offline   Rispondi citando il messaggio o parte di esso
Old 14-09-2003, 10:58   #4
::tony design
Senior Member
 
L'Avatar di ::tony design
 
Iscritto dal: May 2002
Città: Prov. di Torino
Messaggi: 457
Ho un'altro problema:

Devo riscrivere questo frammento di codice con due cicli annidati while:

Codice:
#include <stdio.h>

int main()
{
    int i1,i2;
    for(i1=2; i1 < 10; i1 += 2)
    {
           for(i2 = 12; i2 > i1; --i2)
                printf("X");
           printf("\n");
    }
    getch();
}
Io ho provato in questo modo, ma l'output è diverso:

Codice:
#include <stdio.h>

int main()
{
    int i1,i2;
    i1 = 2;
    while(i1 < 10)
    {
           i2 = 12;
           while(i2 > i1)
           {
               printf("X");
               printf("\n");
               --i2;
           }
           i1 += 2;
    }
    getch();
}
Grazie ancora...

::tony
__________________
::tony design
::tony design è offline   Rispondi citando il messaggio o parte di esso
Old 14-09-2003, 11:04   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Codice:
#include <stdio.h>

int main()
{
    int i1,i2;
    i1 = 2;
    while(i1 < 10)
    {
           i2 = 12;
           while(i2 > i1)
           {
               printf("X");
               --i2;
           }
           printf("\n");
           i1 += 2;
    }
    getch();
}
Come vedi printf("\n") è al di fuori del ciclo + interno... Il for accetta un solo statement oppure un blocco di parentesi {}...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Recensione Vivo X300 Ultra: fotocamera eccezionale, ma prezzo proibitivo Recensione Vivo X300 Ultra: fotocamera ecceziona...
Xiaomi 17T Pro recensione: zoom Leica 5x e batteria silicio-carbonio per l'alternativa ai top Xiaomi 17T Pro recensione: zoom Leica 5x e batte...
Amazon TOP 7 rinnovata: in posizione 2 u...
HTTP/2 Bomb: il nuovo attacco DoS che ab...
Assetto Corsa Evo v0.7: arrivano finalme...
2 portatili tuttofare Vivobook e Acer a ...
È stato acceso il più gran...
Mercato PC in crisi nera secondo IDC: ne...
Toyota a idrogeno liquido: il prototipo ...
Allarme ONU: entro il 2030 l'Intelligenz...
GoPro a rischio fallimento a causa dell'...
AMD sfida RTX Spark: Strix Halo e Gorgon...
I taxi a guida autonoma viaggiano vuoti ...
Fiat torna grande: ecco la prima immagin...
AV2 ufficiale: il nuovo codec taglia la ...
Vision Pro è già morto? La...
Ve lo siete perso? Smart TV UHD TCL da 6...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:39.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v