Scopo di questa esercitazione è di familiarizzarsi con i puntatori, array, stringhe, strutture e unioni.
Al solito, si suggerisce di creare una directory apposita per i
files relativi a questa esercitazione.
Ricordare inoltre che i prototipi delle function di libreria per
operare sulle strighe risiedono nel file di header string.h.
#include <stdio.h>Aggiungere anche la scrittura di
int main(){
float a[4]= { 1.30, 2.30, 3.30, 14.60}, *ip, *iq;
ip = &a[0];
iq = ip;
printf("valore di a[0]: %f,indirizzo di a[0]: %p \n", a[0], &a[0]);
return 0;
}
*ip, &ip, ip, a (con gli opportuni convertitori di formato)e interpretare i risultati. Aggiungere quindi anche la stampa di
*ip + 3 e *(ip+3)ed interpretare anche questi risultati.
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
cij = Somma_su_k_da_1_a_2 aik bkj
per 1 <= i<= 2 e 1 <= j<= 2
Tener conto dei diversi limiti degli indici degli arrays C.
Cosa scriverà il seguente programma ?
#include <stdio.h>
int main(){
int i;
char s1[] = "Immetti un numero";
for(i=0;i< sizeof(s1); i++)
printf("%c \n",s1[i]);
printf("%s \n",s1);
return 0;
}
Modificarlo in modo da introdurre una seconda stringa di lunghezza 40 e copiarvi sopra la stringa s1.
verificare ed interpretare il risultato di
char s1[20]="Pippo";
char s2[30];
sizeof(s1)E se le istruzioni precedenti fossero in una function ?
sizeof(s2)
strlen(s1)
strlen(s2)
Copiare quindi la stringa s1 su s2 mediante la function di libreria strcpy. (Utilizzarla come:strcpy(s2,s1);) Ristampare il risultato di
strlen(s2)Infine dichiarare un puntatore a caratteri, pc, allocare memoria con l' istruzione
pc = malloc(...);Dove al posto dei puntini, nella chiamata a malloc, va data la lunghezza della stringa che vogliamo utilizzare (la possiamo ricavare dai dati ottenuti fin qui). Infine copiare s1 nell' area riservata a pc e visualizzare la stringa mediante pc.
struct schedaed un puntatore a struct scheda (di nome ps), allocare dinamicamente memoria per ps e assegnare ai campi i valori "Dennis Ritchie" (autore), "Il mio primo programma C" (titolo), 1972 (anno). Scrivere quindi i valori dei 3 campi su schermo.
{ char *autore;
char *titolo;
int anno;
};