risposta alla PRIMA domanda
codice:
#include<iostream.h>
void main(){
char array1[14]="stringa prova", * p;
int i;
/* faccio puntatore *p al PRIMO VALORE dell' array1 */
p=array1;
/* faccio puntatore *p all'INDIRIZZO IN MEMORIA del primo valore dell' array1 */
//p=&array1[0];
/* N.B. entrambe le assegnazioni restituiscono lo stesso OUTPUT */
/* i 2 output saranno UGUALI in quanto sia p che array1 "puntano e quindi sono puntatori" alla stessa cosa */
cout<<"p="<<p<<endl; // output 1
cout<<"array1="<<array1<<endl<<endl; // output 2
/* ora invece visualizzo soltanto il primo valore della VARIABILE CHAR array1 */
cout<<"array1[0]="<<array1[0]<<endl<<endl; // output 3
/* ciclo per tutti i singoli valori di array1, se trovo il carattere "a" lo sostituisco con "B" */
for(i=0;i<14;i++){
if(array1[i]=='a') array1[i]='B';
}
/* visualizzo i valori modificati N.B. anche questa volta i 2 output saranno UGUALI */
cout<<"p="<<p<<endl; // output 4
cout<<"array1="<<array1<<endl<<endl; // output 5
}
risposta alla SECONDA domanda
codice:
#include<iostream.h>
void area_rettangolo1(int b, int a){
int r=b*a;
cout<<"FUNC1 Risultato="<<r<<endl;
}
int area_rettangolo2(int x, int y){
return(x*y);
}
void main(){
int base=5, altezza=7;
area_rettangolo1(base,altezza);
cout<<"FUNC2 Risultato="<<area_rettangolo2(base,altezza)<<endl;
}
Spero che questi 2 esempi possano chiarirti le idee