Manejo de Funciones

5 views
Skip to first unread message
Message has been deleted

delta14

unread,
May 8, 2008, 1:17:45 PM5/8/08
to Estructuras de Datos
Se espera que los aprendices puedan describir el uso adecuado de los
parámetros y argumentos, que se hagan planteamientos sobre el
comportamiento de la ejecución del programa cuando se da la
interacción entre programa principal y función, que identifiquen la
definición de una función y el uso de librerías y sobre todo, que
evalúen la importancia de la programación modular. Este foro cierra el
24 de mayo.

sanchez_01

unread,
May 21, 2008, 7:02:33 PM5/21/08
to Estructuras de Datos
Hola a todos:

Quiero compartir mi investigación con ustedes sobre funciones en
general.
Las funciones son bloques de programa, que es el lugar donde se
produce toda la actividad del programa. Es la característica más
importante de C. Subdivide en varias tareas el programa, así sólo se
las tendrá que ver con diminutas piezas de programa, de pocas líneas,
cuya escritura y corrección es una tarea simple. Las funciones pueden
o no devolver y recibir valores del programa.
El mecanismo para trabajar con funciones es el siguiente, primero
debemos declarar el prototipo de la función, a continuación debemos
hacer la llamada y por último desarrollar la función.
A continuación les presento un pequeño ejemplo(muy sencillo) sobre el
comportamiento de una función observen los mensajes:
#include<stdio.h>//libreria
void main()
{

void mostrar();//***prototipo****
printf(“estoy en la principal”);
mostrar();//invocacion
printf(“de vuelta en la principal”);
}
void mostrar()//define función
{
printf(“ahora he pasado a la función”);
}

Azurim Sánchez

Ronald

unread,
May 21, 2008, 7:49:24 PM5/21/08
to Estructuras de Datos
Como ya se menciono en comentarios anteriores las funciones es una
técnica usada por los para hacer sus códigos más cortos, ya que
consiste en reducir un gran problema complejo, en pequeños problemitas
más sencillos.
A continuacion se presentara la sintaxis o el cuerpo de la funciòn
de una funciòn .
Tipo de datos_nombre de la funcion_(tipo y nombre de argumentos)
Tipo_de_datos: Es el tipo de dato que devolverá la función, estas
pueden ser real, entera, o tipo void.
Las funciones de tipo void no devuelven valores.
Tambien existen funciones que devuelven valores.
Nombre de la funciòn: Es el identificador que le damos a nuestra
función.
Tipo y nombre de argumentos: son los parámetros que recibe la función.
Los argumentos de una función no son más que variables locales que
reciben un valor.
Acciones: Son las labores que cumplirá la función, cuando sea
ejecutada. Entre ellas están: Lecturas ,Cálculos ,Impresiones,
asignaciones , expresiones.
De: Ronald Martìnez , alguien me puede aclarar sobre los pases por
valor y pase por referencia en una funciòn.

On 8 mayo, 12:17, delta14 <ethosa...@yahoo.es> wrote:

delta14

unread,
May 22, 2008, 9:41:33 AM5/22/08
to Estructuras de Datos
Gracias Azurim, que me dices de los parámetros y de los argumentos.
¿Qué cuidados debemos tener con ellos?

delta14

unread,
May 22, 2008, 9:46:51 AM5/22/08
to Estructuras de Datos
Ronald, Gracias por la participación, te agradezco que leas sobre la
etiqueta en foros(ver el docuemento de esta asignación) ya que eso
incide en la valoración de la participación.Me gustaría conocer tus
reflexiones sobre la importancia de los argumentos y los parámetros.
Sobre los tipos de pases voy a esperar que algún comañer@ se sirva
apoyarte.

liliana

unread,
May 22, 2008, 10:38:27 AM5/22/08
to Estructuras de Datos
Hola Compañeros:
Quiero compartir con ustedes algunos puntos que considero muy
importantes y que siempre debemos tener presente en cuanto a
funciones.
La definición de una función consiste en la definición del código
necesario para que esta realice las tareas para la cuales ha sido
prevista y se ejecute a partir de la invocación o llamado del programa
principal.
El código es el conjunto de instrucciones que debe ejecutarse cada vez
que la función es llamada.
Toda función debe ser declarada antes de ser utilizada en la función o
programa que realiza el llamado.
Hasta la proxima.
...Liliana....

On 8 mayo, 12:17, delta14 <ethosa...@yahoo.es> wrote:

Arelis_01

unread,
May 22, 2008, 12:51:26 PM5/22/08
to Estructuras de Datos
Buenas Compañeros:
De lo que he investigado y aplicado una función es un conjunto de
declaraciones, definiciones además de expresiones y sentencias que
realizan una tarea específica.
El uso de funciones nos permite modularizar nuestro código a la vez de
que hace más fácil la depuración del mismo.
He usado las funciones de bibliotecas son las que se utilizan para
realizar un cierto número de operaciones o cálculos de uso común
permiten realizar una operación con sólo una llamada a la función y
las funciones creadas por el usuario el propio usuario declara cada
una con un propósito único e identificable.

Zuleyka

unread,
May 22, 2008, 1:53:34 PM5/22/08
to Estructuras de Datos


Las funciones son módulos de programa que realizan una tarea
específica, y que se invoca en el programa principal o dentro de otras
funciones cuando se necesite. Para trabajar con funciones hay que
tener presente tres aspectos:prototipo de función(aquí se indica el
tipo,el nombre y los argumento de la función),llamado de la función(se
invoca el nombre de la función y en paréntesis los argumento o valores
que necesita la función),definición de la función(Es la lógica de la
función).

Arelis_01

unread,
May 22, 2008, 2:06:02 PM5/22/08
to Estructuras de Datos
Buenas:
La recomendación que les puedo brindar y que en lo personal me ha
ayudado mucho es sobre el método divide y vencerás; osea cuando
contruyas una función ve ejecutandola inmediatamente así te darás
cuenta donde esta el error y cuando ya esa cumple el objetivo vas
desarrollando las otras, a medida que hagas una función las vas
corriendo, eso te ayudará a hacer un programa más eficiente.
Otro detalle de que cada definición de función es necesario un
prototipo de función.
La función tiene un cuerpo o bloque, que contienen las declaraciones
y enunciados.Dentro de cada función se pueden declarar variables que
solo ella puede reconocer y se conocen como variables locales y las
variables que llegan por parametros ya sean por valor o por
referencia, no se deben declarar dentro de la función.
hay funciones que no retornan nada, estas son de tipo void, la cual
indica que esa función no devolverá ningún valor, si en caso contrarío
la función devuelve un resultado de debe especificar el tipo de la
función.
Ejm: FUNCIÓN VOID
void func1(int y)
Ejm: Función que devuelve valor
int func2(int x)
Message has been deleted

rogelio

unread,
May 22, 2008, 2:12:09 PM5/22/08
to Estructuras de Datos

Hola compañeros del grupo

Em mi opinión las funciones son un conjunto de declaraciones,
definiciones, expresiones y
sentencias que realizan una tarea específica.
Las funciones nos ayudan a ayudan a hacer un trabajo mas claro y
corto.
Una de las ventajas de las funciones es que estructura y organiza el
codigo.
Se denomina parametros a los tipos declarados en el prototipo de la
función cuando se declara el procedimiento se define sus parametros .
Cuando se realiza una llamada a la función los los valores pasados se
llaman argumentos.
En cuanto a mi persona el uso de librerias no ha sido profundo ya que
solo he usado stdio.h, para (scanf y printf) y tambien string.h para
(strcmp) para cuando necesito llamar por cedula.
La importancia de la programación modular es que todos sabemos que
para resolver un problema es mejor dividirlo para poder que se nos
haga mas facil su solución; un ejemplo importante de esto son las
funciones.

Alguna persona me podria mandar ejemplos sobre librerias, las que
mas usaremos.

*******Rogelio Fuentes********

daniel

unread,
May 22, 2008, 2:12:33 PM5/22/08
to Estructuras de Datos

Bueno ...como estan?

Los parametros son declarados en el prototipo de la funcion en el
programa principal. Los parámetros se pasan normalmente por valor,
pero también se pueden pasar por referencia.
Como por ejemplo la funcion “int colver (int x, int y)”. esta funcion
recibira unicamente los valores de x y Y, se podra modificar los
valores pero cualquier cambio de los valores de X o de Y no afecta a
los parametros actuales es decir a los parametros que llamo la funcion
“volver”.
Bueno los argumento representan el valor que se tranfiere a la funcion
o el llamado.
Para que un programa en c funcione adecuadamente tenemos que tener
nuestro programa principal, con nuestras variables, nuestros prototipo
para cada funcion que vayamos a realizar, la llamada a cada funcion.
De ahi vienen los pequeños programas o declaraciones de las funciones
y el procedimiento de cada una. Asi nuestro programa se vuelve mas
manejable.
Al realizar bloques de programas se hace llamado a lo que es
programacion modular dividir secciones del programa y realizar los
calculos de cada uno los pequeños programas.
Una de los problemas que tuve fue al momento de utilizar funciones
dentro de la librería <string.h>,como lo es strcmp que comparaba dos
cadenas.

Zuleyka

unread,
May 22, 2008, 2:21:59 PM5/22/08
to Estructuras de Datos


Agrego a mi comentario anterior
Al pasar datos a una función lo podemos hacer de dos maneras ellas
son: pase por valor se hace una copia del valor del argumento real a
los argumento de la función y el pase por referencia se pasa la
direcccón de memoria del argumento real a los argumento de la función.
Me gustaria que me aclararan sobre como utlizar punteros en una
función, que deveria tener presente.
Gracias.

delta14

unread,
May 22, 2008, 3:13:15 PM5/22/08
to Estructuras de Datos
Gracias Liliana. Puedes explicar un poco lo que ocuure cuando el
programa principal invoca a una función.

delta14

unread,
May 22, 2008, 3:16:27 PM5/22/08
to Estructuras de Datos

Hola Arelis ¿qué tipo de declaraciones o definiciones podemos
encontrar en una función?

delta14

unread,
May 22, 2008, 3:19:43 PM5/22/08
to Estructuras de Datos
Hola Zuleyka, comenta sobre los tipos de las funciones, ¿es posible
que una función sea del tipo estructura declarado por un usario con el
typedef? Ejemplifica brevemente.

delta14

unread,
May 22, 2008, 3:22:26 PM5/22/08
to Estructuras de Datos
Gracias Arelis, ¿cómo hace una función para que el programa invocador
obtenga el resultado del trabajo realizado por la función?

delta14

unread,
May 22, 2008, 3:28:44 PM5/22/08
to Estructuras de Datos
Hola Rogelio, gracias por participar. Sobre las librerias recuerda el
trabajo que hicimos al inicio del semestre. Por favor explica que pasa
cunado el programa principal y la función tienen una variable con el
mismo nombre.

jose garcia

unread,
May 22, 2008, 3:28:48 PM5/22/08
to Estructuras de Datos

“Buenas Tardes a todos”
Para aclarar la duda de mi compañero.
Para mi:
Pase por valor:
El pase por valor es para mi el mas sencillo, se denomina de la
siguiente manera:
Se copian los parámetros dados en la invocación de la función a las
variables (argumentos) especificados en la definición de la función.
*Quiere decir que se hace una copia similar a los parámetros.
Ejemplo:
main()
{
int a,b,c
int producto(int x, int y); //prototipo de la función
scanf(“%d %d”,&a,&b);
c=producto(a,b); //llamado de la función
............................
}
int producto(int x, int y) //definición de la función
{ int p;
p=x*y;
return(p);
}

Pase por referencia:
El pase por referencia para mi es un poco complejo ya que se
trabaja con direcciones de memoria y se denomina de esta manera:
En este caso se envían a los argumentos las direcciones de
memoria de los parámetros, esto implica que los argumentos deben ser
variables puntero o apuntadores.
Nota: Los arreglos siempre se pasan por referencia, esto indica que
toda modificación hecha a un argumento arreglo en una función, se vera
reflejada en el parámetro correspondiente del programa que hizo el
llamado o la invocación.
Ejemplo:
main()
{
int v[5];
void llenar(int x[]); //prototipo de la función
.....................
llenar(v); //llamado de la función
.....................
}
void llenar(int x[]) //definición de la función
{ int i;
for (i=0;i<5;i++)
scanf("%d",&x[i]);

return;
}
=> Espero que les sea de gran ayuda

On 21 mayo, 18:49, Ronald <ronald...@yahoo.es> wrote:
> > 24 de mayo.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

delta14

unread,
May 22, 2008, 3:33:00 PM5/22/08
to Estructuras de Datos
Gracias Daniel. Para usar funciones de librerías hay que estar claro
en cuales son sus argumentos, lo que devuelve y el trabajo que hace,
revisa eso tal vez sea la clave para resolver lo que te
ocurrió<string.h>.¿Daniel cómo podemos hacer para que una función nos
acumule una suma de valores?

delta14

unread,
May 22, 2008, 4:07:55 PM5/22/08
to Estructuras de Datos
Muy bién Jose, ¿Qué que ocurre si a la segunda función le asignas el
tipo int y retorna el valor de i?

jose garcia

unread,
May 22, 2008, 4:12:48 PM5/22/08
to Estructuras de Datos
"Buenas
tardes a todos"
Un puntero: recuerda que es un apuntador, como lo dice la palabra
apunta a hacia algo, el se encarga de apuntar la direccion de la
variable que tu le asignes, tambien ten presente que existe diferentes
tipos variables y al igual que los punteros.
Ejemplo:
tipo
int *ptr :es un puntero entero, solo te permite apuntar varibles
del mismo tipo.
ptr=40;
float *ptr :es un puntero de tipo flotante, solo te permite apuntar
varibles del mismo tipo.
ptr=3.2;
tienes que tener mucho cuidado, en lo personal me encanta utilizar
punteros y observe tu inquietud y espero t sea de ayuda
A la hora de utilizarlo como parametro de una funcion:
observa este ejemplo:
#include<stdio.h>
/* punteros */
void main()
{
int a,acum;
void suma(int a,int *ptr);//Un punto importante "el puntero es del
mismo tipo de la variable apuntada"
acum=0;
printf("introduce un nùmero: ");
scanf("%d",&a);
suma(a,&acum);//Observa que el parametro que se le asigna al
puntero es la direccion de la variable acum
if (acum!=0)
printf("El nùmero es par ");
else
printf("El nùmero es impar ");
}
void suma(int a,int *ptr)//El puntero es un argumento de la funcion y
esta relacionado en el main principal con acum
{
if (!(a%2))
(*ptr)++; //Observa que el puntero aumenta y el apunta la direccion
de acum por lotanto acum aumenta 1
return;
}

Espero que te sea de gran ayuda chao

delta14

unread,
May 22, 2008, 4:22:31 PM5/22/08
to Estructuras de Datos
Zuleyka, los apuntadores se pueden usar dentro de cualquier función
igual que se usan en el main(), en los argumento ofrecen un potencial
adicional, ya que permiten que la función acceda a variables del
programa principal.¿Cómo harías para que una función devolviera dos
valores diferentes sin usar un arreglo?

On 22 mayo, 13:21, Zuleyka <zode...@yahoo.com> wrote:

castillo

unread,
May 22, 2008, 5:17:17 PM5/22/08
to Estructuras de Datos
Buenas tardes a todos
Quiero colaborar con esta investigación que es de gran ayuda para
todos acerca de las funciones. El uso de las funciones es una de las
herramientas muy valiosa utilizada en C. Normalmente las funciones se
declaran como prototipo dentro del programa. Una función es una
seccion de codigos en C que tiene nombre independiente, que ejecuta
una tarea especifica y que opcionalmente regresa un valor al programa
que la llama. Cada función tiene que tener un nombre unico que indique
lo mas claro posible que es lo que hace la función y que permita
interpretar el programa con solo leerlo. Con ese nombre en cualquier
otra parte del programa se puede ejecutar los enunciados contenidos en
la función. A esto se le conoce como la llamada de la función, la
cual puede ser llamada del interior de una de las funciones. Es por
eso que una función es independiente, ella puede ejecutar su trabajo
sin interfrencias y sin interferir otras partes del programa.

On 8 mayo, 12:17, delta14 <ethosa...@yahoo.es> wrote:

sanchez_01

unread,
May 22, 2008, 5:53:41 PM5/22/08
to Estructuras de Datos
Hola a Todos:
Con respecto a la pregunta, puedo decir que entre los cuidados que se
deben tener al manejar tanto parametros como argumentos estan:
que exista una correspondencia entre el tipo y número de los
parametros de la llamada, con los argumentos formales de la función,
esto quiere decir que si declaraste 2 variable deben ser esas 2, igual
deben ser del mimo tipo. Además el orden en que están deben ser el
mismo.
Los parametros se usan para mandar valores a la función,con los que
ella trabajará para realizar las acciones. Son los valores de entrada
que recibe una función, es por ello que los valores que se introducen,
cuando se manda a llamar la función deben ser del mismo tipo por que
de otra manera obtendrá resultados inesperados.

Argumentos de Funciones
Son las variables que van dentro de en la declaración de una función.
Parametros de Funciones
Son las variables que estan en la invocación.

Algo que quiero compartir sobre una diferencia entre los: conceptos
declaración y definición de funciones que es preciso tenerla clara.
Cuando una función se declara, se proporciona un nombre y se listan
sus características. Una definición proporciona un nombre defunción y
reserva espacio de memoria para esa función . Una definición indica
que existe un lugar en un programa donde ‘existe’ realmente la
función definida, mientras que una declaración es sólo una indicación
e que algo existe en alguna posición.
Es por esta razón que se necesita declarar y definir una función

On 8 mayo, 12:17, delta14 <ethosa...@yahoo.es> wrote:

jose garcia

unread,
May 22, 2008, 9:15:41 PM5/22/08
to Estructuras de Datos
Ejemplo 2:
Con una función de tipo int.
main()
{
int p,v[5];
int llenar(int x[]);//prototipo de la funcion
.....................
p=llenar(v);//llamado de la funcion
.....................
}
int llenar(int x[])//definicion de la funcion
{ int i;
for (i=0;i<5;i++)
scanf("%d",&x[i]);

return(i);
}
R/.“Buenas Noches a todos
El vector de igual forma pasa por referencia, lo nuevo seria que la
función devuelve un valor de tipo entero que este caso seria ‘i’, y a
la hora de la invocación de la función se le asignaría el resultado de
la función a una variable entera.
Nota:
En este caso no se puede retornar el vector porque un arreglo contiene
más de una posición y en el llamado de la función no se podría asignar
a una variable.
Gracias por la pregunta, que tenga buenas noches.
> > > - Mostrar texto de la cita -- Ocultar texto de la cita -

jose garcia

unread,
May 22, 2008, 9:33:10 PM5/22/08
to Estructuras de Datos
Buenas noches
Solo para explicar un poco esta expresión:
int suma(int a,int b,int *ptr)
int: tipo de la funcion
suma: nombre de la funcion
a,b,*ptr :argumentos de la funcion.
Explicación:
•tipo: es el tipo del valor entregado por la función. Por ejemplo, el
factorial entrega un número entero. Otra función podría entregar un
número real o un string.

•nombre-función: es un identificador que elige el programador para
nombrar su función.

•parámetros: son los parámetros de la función, es decir de qué depende
el cálculo de la función. Pueden indicarse 0, 1, 2 o todos los
parámetros que se necesiten.

•return expresión: señala cual es la expresión que representa el valor
entregado por la función.

•Una función que no retorna ningún valor se define indicando que
entrega un valor de tipo void.

Enocjahaziel ´´

unread,
May 22, 2008, 10:43:14 PM5/22/08
to Estructuras de Datos
Buenas noches
En cuanto a las funciones de librerías puedo comentar que son
programas diseñados para una tarea específica, como por ejemplo el de
valor absoluto abs() de la librería <stdlib.h>, longitud de la cadena
strlen de <string.h> y las mismas pueden ser llamadas dentro de una
función hecha por el usuario .
Funciones hechas por el usuario:
Nos ayudan a organizar nuestro código fuente, lo que me anima a
utilizar las funciones es que cuando las invoco se que estas (las
funciones) van a realizar un trabajo especifico. Y como comentaron
compañeros anteriores debemos declarar el prototipo de la función, a
continuación debemos
hacer la llamada y por último desarrollar la función.


liliana

unread,
May 23, 2008, 10:00:19 AM5/23/08
to Estructuras de Datos
Buen día a todos:
Con respecto a la pregunta del Profesor lo que entiendo cuando en cada
invocación de una función es que el programa principal transfiere el
comando (instrucciones) a la función, ejecutandose hasta que finalice
la secuencia de instrucciones, luego retorna el comando al programa
principal. Este proceso lo hace para cada llamado de función.
Esta transferencia de intrucciones se hace a través de argumentos
actuales y formales. Los argumentos actuales son los que se declaran
en la llamada a la función y los argumentos formales son declarados en
la definición de la función.

Hasta luego.
*-----Liliana------*

liliana

unread,
May 23, 2008, 10:17:37 AM5/23/08
to Estructuras de Datos
Buen día compañeros:

Con respecto a la pregunta del Profesor entiendo que en cada
invocación de una función el programa principal transfiere el comando
(instrucciones) a la función, ejecutandose hasta que finalice la
secuencia de instrucciones, luego retorna el comando al programa
principal. Este proceso se hace para cada llamado de función.
Esta transferencia de instrucciones se hace a través de argumentos
actuales y formales. Los argumentos actuales son los que se declaran
en la llamda a la función y los que se declaran en la definición de la
función se les llama argumentos formales.

Hasta luego.
*---Liliana---*

Jose

unread,
May 23, 2008, 12:08:16 PM5/23/08
to Estructuras de Datos
Hola
Para establecer la comunicación entre funciones se puede hacer de dos
formas
A) Pase por valor: consiste en hacer una copia del valor de cada
parametro, en cada uno de los argumentos correspondientes.
B) Pase por referencia: consiste en enviar a los argumentos la
dirección de memoria de los parámetros.

Jose

unread,
May 23, 2008, 12:21:43 PM5/23/08
to Estructuras de Datos
Hola
Para lograr la interacción entre el programa prinsipal y la función
hay que escribir el nombre de la función seguido entre parentesis los
parámetros que la funcion necesita para trabajar, mientras el programa
prinsipal llama a la función el espera un momemto, hasta que la
función le retorne el valor que necesita para continuar con los
siguientes procesos o simplemente terminar.

José Mendoza.

Arelis_01

unread,
May 23, 2008, 1:00:48 PM5/23/08
to Estructuras de Datos
Buenas compañeros y porfesor:
Profesor con respecto a su pregunta, para la declaración o definición
de las funciones estas pueden ser de tipo entera, real, cadena o
caracteres, void es la que no retorna valor o no devuelve nada, las
boolean son las que toman valor de verdadero o falso y los tipos que
pueda declarar el usuario con el typedef.
Estos son los tipos más usuados y los cuales conozco.

Gracias

Arelis_01

unread,
May 23, 2008, 1:07:54 PM5/23/08
to Estructuras de Datos
Hola a todos..
Profesor sobre la pregunta de como hace el programa invocador para
obtener el resultado de la función.
Como lo he aplicado: La función retornará un valor del mismo tipo de
la función y en el programa invocador le asigno la función a una
variable declarada en el main, y esta tomará el resultado del trabajo
realizado por la función.
Si hay otra forma de como obtener el resultado me gustaría conocerla.
Muchas Gracias

Damaris

unread,
May 23, 2008, 1:11:38 PM5/23/08
to Estructuras de Datos
Buenos días compañeros
Tenemos que tener presente que los argumentos se denominan en
argumentos formales, estos son los que representan los nombres de los
elementos que se transfieren a la función desde la parte del programa
que hace la llamada, estos solo son conocidos dentro de la función;
Estos también son llamados parámetros formales.
Y tenemos los argumentos reales estos definen la información que
realmente se transfieren.
Los nombres de los argumentos formales no tiene porque coincidir con
los nombres de los argumentos reales en la parte del programa que hace
la llamada, pero hay que tener presente que cada argumento debe ser
del mismo tipo.

Damaris Rosas

Jose

unread,
May 23, 2008, 1:24:53 PM5/23/08
to Estructuras de Datos
Hola
La programación modular es muy importante porque nos permite dividir
un problema en subprogramas, la cual facilita concentrarse parte por
parte, a la vez permite que cada código analizado no sea dificil para
corregir ni de depurara,los programas son mas fáciles de entender, se
reduce la complejidad de las pruebas, aumenta la productividad del
programador y los programas se pueden documentar mejor internamente.

José mendoza.

Jose

unread,
May 23, 2008, 3:24:36 PM5/23/08
to Estructuras de Datos

Hola
Ronald para trabajar con funciones pudes hacerlo de dos formas:
A) Pase por valor: consiste en realizar una copia del valor de cada
parámetro a los argumentos de la función, es decir vas a pasar el
valor del parámetro y no su dirección de memoria.
B) Pase por referencia: en este caso se le envia la dirección de
memoria del parámetro al argumento de la función, esto lo puedes hacer
con frecuencia, cuando quieres que los datos que tienes en el programa
principal sean modificados.
Aquí te muestro un pequeño problema para que puedas entender lo
anteriormente escrito.
#include <stdio.h>
//Cambia el valor inicial de una variable a otro valor
void main()
{
int a=10;
void suma(int *p);
printf("Valor de a sin el llamado a la función:%d\n",a);
suma(&a);//Le pasamos la dirección de memoria de a al argumento de
la función en este caso un apuntador
printf("\n");
printf("Valor de a con el llamado a la función:%d\t",a);
}
void suma(int *p)
{
*p=20;
return;
}
Si deseas hacer el pase por valor no tienes que escribir el ampersan
delante de la variable a, ni usar el argumento de tipo apuntador, es
decir solo tienes que eliminar el asterisco y te permitira mantener el
valor inicial de a.
José Mendoza

On 22 mayo, 08:46, delta14 <ethosa...@yahoo.es> wrote:
> Ronald, Gracias por la participación, te agradezco que leas sobre la
> etiqueta en foros(ver el docuemento de esta asignación) ya que eso
> incide en la valoración de la participación.Me gustaría conocer tus
> reflexiones sobre la importancia de los argumentos y los parámetros.
> Sobre los tipos de pases voy a esperar que algún comañer@ se sirva
> apoyarte.
>
> On 21 mayo, 18:49, Ronald <ronald...@yahoo.es> wrote:
>
>
>
> > Como ya se menciono en  comentarios  anteriores las funciones es una
> > técnica usada por los para hacer sus códigos más cortos, ya que
> > consiste en reducir un gran problema complejo, en pequeños problemitas
> > más sencillos.
> >  A  continuacion   se presentara la sintaxis o el cuerpo de la funciòn
> > de una funciòn .
> > Tipo de datos_nombre de la funcion_(tipo y nombre de argumentos)
> > Tipo_de_datos: Es el tipo de dato que devolverá la función, estas
> > pueden ser real, entera, o tipo      void.
> > Las funciones de tipo void  no devuelven  valores.
> > Tambien existen funciones que devuelven valores.
> > Nombre de la  funciòn: Es el identificador que le damos a nuestra
> > función.
> > Tipo y nombre de argumentos: son los parámetros que recibe la función.
> > Los argumentos de una función no son más que variables locales que
> > reciben un valor.
> > Acciones:   Son  las  labores  que cumplirá la función, cuando sea
> > ejecutada. Entre ellas están: Lecturas ,Cálculos ,Impresiones,
> > asignaciones , expresiones.
> >  De: Ronald Martìnez  , alguien me puede aclarar sobre los pases por
> > valor y pase por referencia en una funciòn.
>
> > On 8 mayo, 12:17, delta14 <ethosa...@yahoo.es> wrote:
>
> > > Se espera que los aprendices puedan describir el uso adecuado de los
> > > parámetros y argumentos, que se hagan planteamientos sobre el
> > > comportamiento de la ejecución del programa cuando se da la
> > > interacción entre programa principal y función, que identifiquen la
> > > definición de una función y el uso de librerías y sobre todo, que
> > > evalúen la importancia de la programación modular. Este foro cierra el

Zuleyka

unread,
May 23, 2008, 3:27:33 PM5/23/08
to Estructuras de Datos


Hola la respuesta a mi pregunta.
¿Es posible que un tipo de función sea de tipo estructura declarado
por el usuario con el typedef?
R= Si es posible declarar una función de tipo estructura, porque al
usar el typedef estamos creando nuestro propio tipo que es de tipo
estructura y este nuevo tipo puede ser el de una función.
ejemplo
typedef struct {
int edad; /* declaración de tipo estructura global */
char nom[15];
} y; -->nuevo tipo creado por el usuario
void main ()
{
y a,aux; //declara estructuras tipo y

y estudiante (y est ); /*Prototipo de función */

aux= estudiante (est); // llamado a la función
} // fin del main
y estudiante(y est) // definición de la función
{
printf("Escriba su nombre:");
scanf(" %[^\n]", est.nom);

printf("Escriba su edad:");
scanf(" %d", &est.edad);
return(est);
}

Zuleyka

unread,
May 23, 2008, 3:45:27 PM5/23/08
to Estructuras de Datos


Hola
La repuesta a mi pregunta ¿Cómo haría para que una función devuelva
dos valores diferente sin usar un arreglo?
R: En lo que entiendo es que una función devulve un valor o no
devuelve nada. No conosco ninguna otra forma de vevolver mas de un
valor de difentes tipos en una función será que estoy equivocada
agradeceria que me aclarara mis dudas.

Damaris

unread,
May 23, 2008, 4:26:25 PM5/23/08
to Estructuras de Datos

¿Cómo se puede acceder(llamar) a una función?
Primero se especifica el nombre, seguido de una lista de argumentos
encerrados entre paréntesis en este caso los argumentos reales y
separados por comas. La llamada puede formar parte de una expresión
simple como una instruccion de asignacion, o utilizando operandos de
expresiones mas complejas.

Damaris Rosas

sanchez_01

unread,
May 23, 2008, 4:53:23 PM5/23/08
to Estructuras de Datos
Buenas tardes a todos los compañeros:

Quiero hablarles un poco sobre la comunicación que se da entre el
programa principal y las funciones.

Cuando se ejecuta el programa la primera función que se ejecuta es el
main y de ahí sigue el resto del programa. De forma incondicional,
cada vez que se invoca una función, se transfiere el control de
ejecución a otra dirección de memoria, donde se encuentran codificadas
otras sentencias, que resuelven el problema para el que se ha
definido, editado y compilado esa función. Son transferencias de
control con retorno. Porque cuando termina la ejecución de la última
de las sentencias de la función, entonces regresa el control a la
sentencia inmediatamente posterior a aquella que invocó esa función.
Los parámetros formales permiten la comunicación de los datos de
entrada. Esa lista de parámetros define el modo en que podrán
comunicarse el programa que utiliza a la función y la función usada.

La primera función que aparece en todo programa C es la función
principal, o función main. Todo programa ejecutable tiene una, y sólo
una, función main .Un programa sin función principal no genera un
ejecutable.
Y si todas las funciones se crean para poder ser utilizadas, la
función principal es la única que no puede ser usada por nadie: nadie
puede invocar a la función principal de un programa.
una función creada y definida sólo se ejecuta si otra función la
invoca o llama. Y en definitiva, como la única función que se ejecuta
sin ser invocada (y también la única función que no permite ser
invocada) es la función main, cualquier función será ejecutada
únicamente si es invocada por la función main o por alguna función que
ha sido invocada por la función main o tiene en su origen, en una
cadena de invocación, una llamada desde la función main.

Azurim Sánchez

delta14

unread,
May 23, 2008, 7:37:15 PM5/23/08
to Estructuras de Datos
Muy bién. ¿Qué pudieras decir de las formas de invocar una función?
¿Qué diferencias existen en usar solo el nombre o incluir el nombre en
una asignación?¿Qué psa si la función es VOID?

delta14

unread,
May 23, 2008, 7:39:52 PM5/23/08
to Estructuras de Datos
José ¿cuál es la mayor dificultad que crees que existe en el grupo
respecto al uso de funciones?

delta14

unread,
May 23, 2008, 7:42:08 PM5/23/08
to Estructuras de Datos
Gracias Enocjahaziel, comenta sobre las dificultades de armar una
función.¿Cuál es la dificultad que confronta el grupo?

delta14

unread,
May 23, 2008, 7:48:45 PM5/23/08
to Estructuras de Datos
Gracias Liliana, ¿será entonces que el programa principal o el que
invoca espera a que la función termine su trabajo para leugo
continuas?

delta14

unread,
May 23, 2008, 7:51:21 PM5/23/08
to Estructuras de Datos
OK josé, entonces qué pasa cuando una función retorna un valor y tiene
un argumento que es un apuntador?

delta14

unread,
May 23, 2008, 7:53:13 PM5/23/08
to Estructuras de Datos
Hola Arelis, aclara si C maneja tipos booleanos, gracias.

delta14

unread,
May 23, 2008, 7:54:52 PM5/23/08
to Estructuras de Datos
Muy bién Damaris, creo que puedes recomendar lo que debemos hacer para
seleccionar los argumentos.

delta14

unread,
May 23, 2008, 7:56:18 PM5/23/08
to Estructuras de Datos
OK José si eso es así comenta sobre las dificultades del grupo para
trabajar con funciones, gracias.

delta14

unread,
May 23, 2008, 8:01:31 PM5/23/08
to Estructuras de Datos
Muy bién Zuleyka, para ayudar en la reflexión, piensa que pasa cuando
tienes dos argumentos que son apuntadores y además la función tiene un
return que devuelve un valor.¿Cuántos valores del programa principal
puede modificar la función?

delta14

unread,
May 23, 2008, 8:02:59 PM5/23/08
to Estructuras de Datos
Significa Damaris que puedo tener una función en un IF?

delta14

unread,
May 23, 2008, 8:06:06 PM5/23/08
to Estructuras de Datos
Muy bién Azurim, ¿Si nadie invoca a la función main() cómo es que
ella se ejecuta???

delta14

unread,
May 23, 2008, 8:08:31 PM5/23/08
to Estructuras de Datos
José ¿tiene sentido hablar de retornar un vector?¿Contradice eso el
pase por referencia que mencionas?

On 22 mayo, 20:15, jose garcia <nimrod_1...@hotmail.com> wrote:
> Ejemplo 2:
> Con una función de tipo int.
> main()
> {
> int p,v[5];
> int llenar(int x[]);//prototipo de la funcion
> .....................
> p=llenar(v);//llamado de la funcion
> .....................}
>
> int llenar(int x[])//definicion de la funcion
> { int i;
> for (i=0;i<5;i++)
> scanf("%d",&x[i]);
>
> return(i);}
>
> R/.“Buenas Noches a todos
> El vector de igual forma pasa por referencia, lo nuevo seria que la
> función devuelve un valor de tipo entero que este caso seria ‘i’, y a
> la hora de la invocación de la función se le asignaría el resultado de
> la función a una variable entera.
> Nota:
> En este caso no se puede retornar el vector porque un arreglo contiene
> más de una posición y en el llamado de la función no se podría asignar
> a una variable.
> Gracias por la pregunta, que tenga buenas noches.
>
> On 22 mayo, 22:07, delta14 <ethosa...@yahoo.es> wrote:
>
> > Muy bién Jose, ¿Qué que ocurre si a la segunda función le asignas el
> > tipo int y retorna el valor de i?
>
> > On 22 mayo, 14:28, jose garcia <nimrod_1...@hotmail.com> wrote:
>
> > > “Buenas Tardes a todos”
> > > Para aclarar la duda de mi compañero.
> > > Para mi:
> > > Pase por valor:
> > > El pase por valor es para mi el mas sencillo, se denomina de la
> > > siguiente manera:
> > > Se copian los parámetros dados en la invocación de la función a las
> > > variables (argumentos) especificados en la definición de la función.
> > > *Quiere decir que se hace una copia similar a los parámetros.
> > > Ejemplo:
> > > main()
> > > {
> > > int a,b,c
> > > int producto(int x, int y); //prototipo de la función
> > > scanf(“%d %d”,&a,&b);
> > > c=producto(a,b); //llamado de la función
> > > ............................}
>
> > > int producto(int x, int y) //definición de la función
> > > { int p;
> > > p=x*y;
> > > return(p);
>
> > > }
>
> > > Pase por referencia:
> > > El pase por referencia para mi es un poco complejo ya que se
> > > trabaja con direcciones de memoria y se denomina de esta manera:
> > > En este caso se envían a los argumentos las direcciones de
> > > memoria de los parámetros, esto implica que los argumentos deben ser
> > > variables puntero o apuntadores.
> > > Nota: Los arreglos siempre se pasan por referencia, esto indica que
> > > toda modificación hecha a un argumento arreglo en una función, se vera
> > > reflejada en el parámetro correspondiente del programa que hizo el
> > > llamado o la invocación.
> > > Ejemplo:
> > > main()
> > > {
> > > int v[5];
> > > void llenar(int x[]); //prototipo de la función
> > > .....................
> > > llenar(v); //llamado de la función
> > > .....................}
>
> > > void llenar(int x[]) //definición de la función
> > > { int i;
> > > for (i=0;i<5;i++)
> > > scanf("%d",&x[i]);
>
> > > return;}
>
> > > => Espero que les sea de gran ayuda
>
> > > On 21 mayo, 18:49, Ronald <ronald...@yahoo.es> wrote:
>
> > > > Como ya se menciono en comentarios anteriores las funciones es una
> > > > técnica usada por los para hacer sus códigos más cortos, ya que
> > > > consiste en reducir un gran problema complejo, en pequeños problemitas
> > > > más sencillos.
> > > > A continuacion se presentara la sintaxis o el cuerpo de la funciòn
> > > > de una funciòn .
> > > > Tipo de datos_nombre de la funcion_(tipo y nombre de argumentos)
> > > > Tipo_de_datos: Es el tipo de dato que devolverá la función, estas
> > > > pueden ser real, entera, o tipo void.
> > > > Las funciones de tipo void no devuelven valores.
> > > > Tambien existen funciones que devuelven valores.
> > > > Nombre de la funciòn: Es el identificador que le damos a nuestra
> > > > función.
> > > > Tipo y nombre de argumentos: son los parámetros que recibe la función.
> > > > Los argumentos de una función no son más que variables locales que
> > > > reciben un valor.
> > > > Acciones: Son las labores que cumplirá la función, cuando sea
> > > > ejecutada. Entre ellas están: Lecturas ,Cálculos ,Impresiones,
> > > > asignaciones , expresiones.
> > > > De: Ronald Martìnez , alguien me puede aclarar sobre los pases por
> > > > valor y pase por referencia en una funciòn.
>
> > > > On 8 mayo, 12:17, delta14 <ethosa...@yahoo.es> wrote:
>
> > > > > Se espera que los aprendices puedan describir el uso adecuado de los
> > > > > parámetros y argumentos, que se hagan planteamientos sobre el
> > > > > comportamiento de la ejecución del programa cuando se da la
> > > > > interacción entre programa principal y función, que identifiquen la
> > > > > definición de una función y el uso de librerías y sobre todo, que
> > > > > evalúen la importancia de la programación modular. Este foro cierra el
> > > > > 24 de mayo.- Ocultar texto de la cita -
>
> > > > - Mostrar texto de la cita -- Ocultar texto de la cita -

jose garcia

unread,
May 23, 2008, 9:07:06 PM5/23/08
to Estructuras de Datos
! buenas noches a todos..
Nota:
Las invocación de funciones se realiza colocando el nombre de la
función y los argumentos actuales en el mismo orden que los parámetros
formales correspondientes. Ejemplo:

void funcion (int x, char c);
...
int z = 12;
char ch = 'Z';

funcion(ch, z); // Error: orden de argumentos cambiado !!
funcion(z, ch); // Ok: invocación con orden correcto

castillo

unread,
May 23, 2008, 9:30:00 PM5/23/08
to Estructuras de Datos

Hola compañeros quiero complementar un poco acerca del uso adecuado
de los parámetros y argumentos.
Paso de parámetros: Recibe el nombre de parámetro uno o mas valores
que son enviados a una función para que esta pueda efectuar su tarea.
Así mismo la función puede retornar un valor para que este sea usado
por el programa principal. Los elementos, enviados en la invocación,
se llaman parámetros actuales. Se clasifican en: Paso Por Valor y
Paso Por Referencia.
Paso por valor: Se realiza un paso de parámetros por valor cuando se
envía una copia de los valores de los parámetros actuales. Estas
copias son recibidas en los parámetros formales, los cuales se
comportan como variables locales pertenecientes a la función invocada.
Al igual que las variables locales, una vez que termina la ejecución
de la función invocada, las variables pertenecientes a los parámetros
formales se destruyen; y por lo tanto, se pierden los valores que
envió el módulo invocador.
Paso por referencia: A diferencia del paso por valor, el paso por
referencia permite que la función invocada modifique el valor original
de las variables usadas como argumentos.

Carlos_Alvarez_H_

unread,
May 23, 2008, 10:23:04 PM5/23/08
to Estructuras de Datos
Buenas noches a todos..

Eh investigado un y me dado cuenta uqe hay tres maneras de pasar los
parametros a una funcion("Pense que solo avian dos")

a continuación te explicaré cada uno... !!

PASE POR VALOR:

Por valor simplemente envías una copia de tu dato original a la
función en la que va a ser usada por ejemplo
int sumar(int num1,int num2)
{ return num1+num2;
}
cuando la llamas supongamos que tengas dos variables enteras
int a, b, res;
res=sumar(a,b);
a lo que llamas a la función en num1 se crea una copia del valor que
haya en a, y en num2 se crea una copia de lo que haya en b es decir a
y b no se afectan en nada

PASE POR REFERENCIA:

int sumar(int &num1,int &num2)
{ return num1+num2;
}
cuando la llamas supongamos que tengas dos variables enteras
int a, b, res;
res=sumar(a,b);
al hacer esta llamada num1 seria como un alias de a, y num2 seria un
alias de b... esto quiere decir que a y num1 son dos nombres
diferentes que referencian a la misma celda de memoria es decir si tú
modificas num1 es como si estuvieras modificando a, y si modificas
num2 es como si estuvieras modificando b...

PASE POR PUNTERO:

int sumar(int *num1,int *num2)
{ return *num1+*num2;
}

int a, b, r, *p1, *p2;
p1=&a;
p2=&b;
r=sumar(p1,p2);

al hacer esto lo que ocurre es que tu estas usando punteros
("direcciones de memoria") de las variables a y b para esto tienes que
saber los dos operadores que se aplican a punteros
el * que se utiliza para declarar un puntero y también para obtener el
valor al que apunta el mismo
y el operador & que obtiene la dirección de memoria de alguna variable
p1=&a;
quiere decir que p1 esta guardando la dirección de la variable a...
Cuando usas un puntero solo puedes apuntar al tipo de dato para el que
fue creado...

Espero que les ayude a todo el grupo a aclarar dudas como me ayudo a
mi

GRACIAS.... Carlos Alvarez H

Abdiel_Barria

unread,
May 23, 2008, 10:31:48 PM5/23/08
to Estructuras de Datos
Buenas Noches compañeros son las 9:28 p.m día 24 de mayo haré mi 2
aportación la cual corresponde a lo siguiente: espero les sirva..

Que es una función?

Una función es una sección de código independiente, con nombre, que
ejecuta una tarea específica y opcionalmente devuelve un valor al
programa que la llamó. En general toma unos valores de entrada,
llamados parámetros y proporcionan un valor de salida o valor de
retorno; aunque tanto unos como el otro pueden no existir.

Partes de una función

Al igual que con las variables, las funciones deben declararse y
definirse. Una declaración es simplemente una presentación, una
definición contiene las instrucciones con las que realizará su trabajo
la función.

Declaración o Prototipo

Es obligatorio usar prototipos. Un prototipo es una declaración de una
función. Consiste en una definición de la función sin cuerpo y
terminado con un ";". La estructura de un prototipo es:

func();

Por ejemplo:

int Mayor(int a, int b);

Sirve para indicar al compilador los tipos de retorno y los de los
parámetros de una función, de modo que compruebe si son del tipo
correcto cada vez que se use esta función dentro del programa, o para
hacer las conversiones de tipo cuando sea necesario. Los nombres de
los parámetros son opcionales, y se incluyen como documentación y
ayuda en la interpretación y comprensión del programa.

Llamado a la función

Una función tiene un único nombre, al utilizar éste nombre en otras
partes del programa se pueden ejecutar los enunciados contenidos en la
función. A esto se le conoce como llamar a la función. Una función
puede ser llamada desde otra función.

Acuérdense que hay dos pasee: pasee valores, pasee por referencia.
Tambien hay variables locales y globales.

castillo

unread,
May 23, 2008, 11:21:16 PM5/23/08
to Estructuras de Datos
Buenas noches a todos ahora los ilustrare sobre el uso de librerías
estas son de gran ayuda, una librería es un conjunto de recursos
(algoritmos) prefabricados, que pueden ser utilizados por el
programador para realizar determinadas operaciones. Las declaraciones
de las funciones utilizadas en estas librerías, junto con algunas
constantes predefinidas que facilitan su utilización, se agrupan en
ficheros de nombres conocidos que suelen encontrarse. Estos ficheros
se suelen llamar "de cabecera", porque es tradición utilizar las
primeras líneas del programa para poner las directivas #include que
los incluirá en el fuente durante la fase de preprocesado.

castillo

unread,
May 23, 2008, 11:45:22 PM5/23/08
to Estructuras de Datos
Ahora les comentare en especial de una, entrada/salida porque en el
Lenguaje C, se maneja con las instrucciones scanf() que toman la
entrada, normalmente del teclado, y la almacena en variables
previamente declaradas y printf( ) es utilizada para desplegar
información en la pantalla, estas funciones tienen sus prototipos
declarados en el archivo stdio.h. El cual es el nombre de un archivo
de cabecera que se encuentran declarados los prototipos de las
funciones.Existe un extenso grupo de archivos de cabecera, donde cada
uno de ellos sirve para manejar un grupo de funciones relacionadas.
Estos archivos se incluyen en las primeras líneas de los programas que
contienen el código fuente. El compilador desplegará un mensaje de
error cuando se trate de utilizar una función sin antes haber incluido
el archivo de cabecera correspondiente. Los cuales son almacenados en
el directorio INCLUDE.

***yosmary***

delta14

unread,
May 24, 2008, 11:53:38 AM5/24/08
to Estructuras de Datos
Muy bien Jose. OJO: el main() también es una función ¿la podemos
invocar con argumentos?

delta14

unread,
May 24, 2008, 11:56:07 AM5/24/08
to Estructuras de Datos
Arelis ¿qué ocurre cuando usas pases por referencia?¿Puede el main()
obtener el resultado del trabajo de la función?

On 23 mayo, 12:07, Arelis_01 <aremary1...@yahoo.es> wrote:
> Hola a todos..
> Profesor sobre la pregunta de como hace el programa invocador para
> obtener el resultado de la función.
> Como lo he aplicado: La función retornará un valor del mismo tipo de
> la función y en el programa invocador le asigno la función a una
> variable declarada en el main, y esta tomará el resultado del trabajo
> realizado por la función.
> Si hay otra forma de como obtener el resultado me gustaría conocerla.
> Muchas Gracias

delta14

unread,
May 24, 2008, 12:00:13 PM5/24/08
to Estructuras de Datos
Carlos revisa el caso de pase por eferencia, hay un error en el
prototipo. Cuéntanos ¿cuál es?

delta14

unread,
May 24, 2008, 12:02:15 PM5/24/08
to Estructuras de Datos
Gracias, Yosmary. ¿Qué ventajas les ve a los tipos de pases?

delta14

unread,
May 24, 2008, 12:04:43 PM5/24/08
to Estructuras de Datos
Muy bien Abdiel. Comenta sobre los problemas que confronta el grupo
con las funciones, al parecer todo el mundo está claro con los
conceptos, le ven ventajas pero en la prácticahay dificultades. ¿Dónde
está el problema?

delta14

unread,
May 24, 2008, 12:06:07 PM5/24/08
to Estructuras de Datos
Hola Yosmary, gracias por participar. Antes de usar una función de
librería que cosas debes tomar en cuenta?

einar_...@yahoo.es

unread,
May 24, 2008, 2:16:29 PM5/24/08
to Estructuras de Datos
Concepto de argumentos:
Los argumentos están muy ligados a las funciones y es que la
utilización de las palabras de estos conceptos en su forma correcta
ayuda a comprender el paso de parámetros, la creación del prototipo y
la definición de la función o el procedimiento.
Una función es una porción de código independiente del exterior ( se
puede re-utilizar llamandola muchas veces con datos diferentes).

Argumentos formales y argumentos actuales. Los argumentos formales son
los que aparecen en la definición de la función, mientras que los
actuales son los que aparecen en la llamada a la función.

Parámetros (en prototipo o definición) argumentos formales
Valores pasados (en tiempo de ejecución) argumentos actuales

La sintaxis utilizada para la declaración de la lista de parámetros
formales es similar a la utilizada en la declaración de cualquier
identificador. A continuación se exponen varios ejemplos:
int func(void) {...} // sin parámetros
inf func() {...} // ídem.
int func(T1 t1, T2 t2, T3 t3=1) {...} // tres parámetros simples,
// uno con argumento por defecto
int func(T1* ptr1, T2& tref) {...} // los argumentos son un puntero
y
// una referencia.
int func(register int i) {...} // Petición de uso de registro
para
// argumento (entero)
int func(char* str,...) {...} /* Una cadena y cierto número de
otros
argumentos, o un número fijo de argumentos de tipos
variables */

Tipo pase por valor
Cuando de dice que en C los argumentos de las funciones se pasan
siempre por valor, lo que se quiere decir es que las variables
argumentos formales reciben copias de los valores de los argumentos
actuales, pero son siempre variables diferentes, propias de la
función. Por eso, si se modifica un argumento formal dentro de la
función, se está modificando una copia del argumento actual y si el
argumento actual es una variable, dicha variable no queda modificada.
Esto es un mecanismo de seguridad de C, de modo que una función no
pueda modificar fácilmente las variables externas a ella.

Tipo de pase por referencia:
En muchas ocasiones, las funciones tienen que modificar las variables
pasadas como argumentos actuales. Como el valor de retorno es único,
ésta es la única forma por ejemplo de que una función trasmita al
exterior varios resultados en una sola llamada.
Programacion modular:
Se trata de la division de un programa en segmento que nos permite
realizar un programa forma mas facil donde tambien nos permite
manejar y utilizar esas funciones en otros programas.
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages