Parametros
Programación I Eliana Guerrero S. Eliana Guerrero S.
PARAMETROS PASADOS POR VALOR Y PASADOS POR REFERENCIAPASADOS POR VALOR: SE PASA SOLO EL VALOR Y SE OCUPAN PASADOS POR VALOR: SE PASA SOLO EL VALOR Y SE OCUPAN DIFERENTES POSICIONES DE MEMORIA ENTRE LOS PARÁMETROS REALES Y LOS FORMALES.PASADOS POR REFERENCIA: SE PASA EL VALOR Y LA DIRECCION DE MEMORIA. En C++ se usa símbolo & acompañando a la variable del parámetro formal.
Recibe valor y dirección de memoria (parámetro por referencia) void cambio1(int&x int y) ; //prototipo o cabecera &x, int y) ; //prototipo o cabecera Recibe solo el valor (parámetro por valor)
Ejemplo pasado por Valor. Ejemplo pasado por Valor a1=2; b1=3; a2=4;b2=5; ………sumar(a1,b1); // Llamada ….. sumar(a2,b2 ); // otra Llamada ( ) ……….
a1 2
Traza o tabla de comprobación p
globales b1 a2 3 4 b2 5 a 2 4 sumar b 3 5 c 5 9 Imprime resultado de la suma es: 5resultado de la suma es: 9 resultado de la suma es: 9
Modulo sumar void sumar(int a, int b) Primera llamada { Segunda llamada int c; c=a+b; b printf(“resultado de la suma es: %d”,c); getch(); }Suponiendo que son posiciones de memoria del ejemplo anterior
Dir:100 Dir:102 Dir:104 Dir:108
2 a1
3 b1
4 a2
5 b2
Dir:200
2 4 a
Dir:210
3 5 b
5 9 c
Dir:216Primera llamada Segunda llamada
Ejemplo pasado por referencia. Llamadas ……… Ingresar(a1,b1); Ingresar(a2,b2); ………. Modulo ingresar Void ingresar(int &a, int &b) a1 { 2 printf(“Ingrese primer valor: “); scanf(“%d”,&a); printf(“Ingrese segundo valor: “); scanf(“%d”,&b); }
Si ingresamos : 2, 4 en la primera llamada 2, 4 en la primera llamada 6, 8 en la segunda llamada
Traza o tabla de comprobaciónglobales l b l b1 a2 4 6 8 b2 a 2 6 ingresar i b 4 8
Suponiendo que son posiciones de memoria del ejemplo anterior
Dir:100 Dir:102 Dir:104 Dir:108
2 a1
4 b1
6 a2
8 b2
Dir:200...
Regístrate para leer el documento completo.