Page 164

3.5 Paso de par´ametros v[i] = i; printf ("%d: %d\n", i, v[i]);

21 22

} incrementa(v) ; printf ("Despu´ es de llamar a incrementa:\n"); for (i=0; i<TALLA; i++) printf ("%d: %d\n", i, v[i]); return 0;

23 24 25 26 27 28 29

}

Analicemos qu´e ocurre en diferentes instantes de la ejecuci´on del programa. Justo antes de ejecutar la l´ınea 24, existen las variables locales a main y las variables globales: variables globales

main

i

v

3

0

1

2

0

1

2

Al llamar a incrementa se suministra un puntero a la zona de memoria de variables globales, pero no hay problema alguno: el par´ametro a es un puntero que apunta a esa direcci´on.

a incrementa

variables globales

i

0

llamada desde l´ınea 24

main

i

v

3

0

1

2

0

1

2

Los cambios al contenido de a se manifiestan en v:

a incrementa

variables globales

i

3

llamada desde l´ınea 24

main

i

v

3

0

1

2

1

2

3

Y una vez ha finalizado la ejecuci´ on de incrementa, el contenido de v queda modificado: variables globales

main

i

3

v

0

1

2

1

2

3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . · 170 Dise˜ na un programa C que manipule polinomios de grado menor o igual que 10. Un polinomio se representar´ a con un vector de float de tama˜ no 11. Si p es un vector que representa un polinomio, p[i] es el coeficiente del t´ermino de grado i. Dise˜ na un procedimiento suma con el siguiente perfil: void suma(float p[], float q[], float r[]) El procedimiento modificar´ a r para que contenga el resultado de sumar los polinomios p y q. · 171 Dise˜ na una funci´ on que, dada una cadena y un car´acter, diga cu´antas veces aparece el car´acter en la cadena. 158

Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement