elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Operadores de asignación.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Operadores de asignación.  (Leído 1,371 veces)
Lutecio

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Operadores de asignación.
« en: 21 Septiembre 2013, 20:50 pm »

Hola, acabo de empezar un curso de programación en C muy básico y ya he empezado a hacer programas pequeños. Ahora estoy haciendo una prueba de escritorio a un programa que realiza la sumatoria del cuadrado de los números menores a 10 y trabajando con una variable llamada total, me surgió una duda sobre ella. La variable está declarada como total, y después para las operaciones tengo
total+=y, donde y tiene asignado el valor de 1, pero total no tiene un valor asignado antes. Para cuando una variable no tiene asignado un valor, ¿cuál toma?.

Disculpen por la poca explicación, espero haberme explicado bien. Muchas gracias.



En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Operadores de asignación.
« Respuesta #1 en: 21 Septiembre 2013, 21:03 pm »

Toda variable local (definida dentro de un bloque y sin el calificador "static") inicia con el valor indicado en su declaración, si esto se omite el valor inicial sera no definido o basura:
Código
  1. int main(void)
  2. {
  3.   int i = 7; /* valor inicial es ... */
  4.   int j;     /* valor inicial no definido o basura */
  5.  
  6.   return 0;
  7. }

Lo usual con variables utilizadas para calcular un total es inicializarlas a cero:
Código
  1. int total = 0;
  2.  
  3. /* ... */
  4.  
  5. total += y; /* Equivalente a "total = total + y" */
Ya que de no hacerlo la variable iniciaría con solo Dios sabe que valor y la expresión "total + y" no daría el resultado esperado.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Operadores de asignación.
« Respuesta #2 en: 21 Septiembre 2013, 21:17 pm »

Buenas, @rir lo explico muy bien, pero ya que me hace ilusión pues lo explico yo también...

Básicamente, si por ejemplo decimos que y es igual a 1...

Podriamos dejar de hacer total+=y y pasar a esto: total++, básicamente ++ suma 1 a esa variable...

en caso de que sea mayor que 1, supongamos que 5, pues es recomendable hacer:

y=5
total+=y


por ejemplo:

Código
  1. int sumar() {
  2. int y=5;
  3. return total+=y;
  4. }

Cada vez que llames a sumar, en caso de que no digas que "total=0", se va a sumar 5...

También puedes hacer:

Código
  1. int sumar(int y) { //y se declara como entero en los argumentos de la funcion
  2. return total+=y;
  3. }



Retomando tu pregunta:

Para cuando una variable no tiene asignado un valor, ¿cuál toma?.

Siempre que se declare una variable entera y no se iguale a nada, siempre va a tomar el valor de 0... Si es eso lo que preguntas... :P

Un saludo.
En línea


Interesados hablad por Discord.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Asignación de memoria en C
Programación C/C++
Akkon 3 3,909 Último mensaje 30 Abril 2011, 15:22 pm
por Akkon
Virtualbox asignacion de ip
Hacking
415richard 0 2,200 Último mensaje 7 Septiembre 2011, 01:15 am
por 415richard
Operadores ->, ::, .
Programación C/C++
Developer Diego 2 1,327 Último mensaje 29 Octubre 2014, 03:13 am
por Developer Diego
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines