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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Línea de Código : duda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Línea de Código : duda  (Leído 8,503 veces)
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Línea de Código : duda
« Respuesta #10 en: 18 Diciembre 2021, 20:50 pm »

Gracias totales !
Excelente explicación.
Sólo te presento aquí algunas Notas para que leas sobre ( y que me digas si no estoy en lo
correcto en los casos en que fuere ) tu Segundo Código, luego de la antepenúltima Línea :

Código
  1. // Como dije antes, aunque las variables globales se inicializan a 0 por defecto, es mejor especificarlo para facilitar su lectura
  2. // Normalmente una variable sin inicializar se entiende que se le va a dar un valor concreto mas adelante y que no importa el valor
  3. // que tenga en este momento
  4. int variableGlobal = 0;
  5. const int CONSTANTE_GLOBAL = 0;
  6.  
  7. void func() {
  8.  int variableLocalFunc = 0;
  9.  
  10.  cout << "Variable global: " << variableGlobal << endl; // Como se llama en el main() despues de modificar el valor de variableGlobal -> Mostrara 10
  11. //  cout << "Variable local main: " << variableLocalMain << endl; // ERROR: La variable local de main() no es accesible desde aqui
  12. }
  13.  
  14. int main() {
  15.  // Una variable local no se inicializa a 0 por defecto. Por lo tanto es necesario inicializarla explicitamente (dado el caso)
  16.  // Al igual que antes, se puede dejar sin inicializar si se le va a dar un valor mas adelante (estando seguros de que no se va a usar esta variable antes de darle un valor)
  17.  // Lo de inicializar siempre todas las variables al momento de declararlas ya depende de gustos
  18.  int variableLocalMain = 0;
  19.  
  20.  variableGlobal = 10;
  21.  cout << "Variable global: " << variableGlobal << endl; // Muestra: "Variable global: 10"
  22.  
  23. //  constanteGlobal = 10; // ERROR: Es una constante -> No se puede modificar  = = = = Debo anular la Línea, entiendo que es coherente hacerlo.
  24. //  cout << "Constante global: " << constanteGlobal << endl; // Muestra: "Constante global: 0" = = = No muestra nada : Sólo arroja ERROR al compilar ( ? )
  25.  
  26.  
  27.  // CIERRE DE PROGRAMA :
  28.  // A C L A R A C I Ó N
  29.  // Cerrando así, con " func(); ", CODE devuelve = " variableGlobal = 10 " pues tiene en cuenta tanto los Cuerpos ' int main( ) ' como ' void func( ) '
  30.                                                 // " variableGlobal = 10 "
  31.  // P  E  R  O
  32.  // Si cerrara con " return 0; " , CODE devuelve = " variableGlobal = 10 " pues tiene en cuenta sólo el Cuerpo ' int main( ) '
  33.  
  34.  func(); // X supuesto q para cerrar con " getch (); " se comportará como con " return 0; " pero habrá que ' dar Cabecera de #include <conio.h> '
  35. }
No, no es cierto eso que has agregado en el "Cierre del programa"...

En C/C++ las funciones devuelven únicamente lo que se especifique en el 'return'. No es como otros lenguajes que devuelven la última instrucción de la función.
La función main() es un caso especial: Es la única función que si no se especifica el return, el propio compilador agrega un 'return 0' automáticamente. Digamos que lo correcto sería especificar el return siempre al final del main() pero te encontrarás muchos casos en los que no se pone porque está implícito y solemos ahorrarnos (me incluyo) esa línea por comodidad sobre todo en programas simples.

PD: No utilices la función getch() de la librería <conio.h>. Como ya se ha mencionado por ahí: esta librería no es estándar y por lo tanto puede haber compiladores que fallen si la incluyes. En su lugar tienes la función getchar() que puedes usar con el mismo propósito pero con la ventaja de que esta pertenece a <stdio.h>.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pasar codigo a una linea « 1 2 3 »
PHP
dimitrix 22 8,172 Último mensaje 28 Junio 2007, 10:52 am
por dimitrix
Duda Leer Linea por Linea de Un textBox
Programación Visual Basic
NsTeam 2 7,530 Último mensaje 1 Diciembre 2010, 02:58 am
por Stelio Kontos
Pasar de una linea de codigo a otro sin perder la secuencia del codigo en vb
Programación Visual Basic
plak 2 2,378 Último mensaje 28 Junio 2014, 03:13 am
por plak
Duda sobre una linea en mi codigo que no funciona
Programación C/C++
miguevv 6 2,414 Último mensaje 11 Agosto 2018, 03:31 am
por miguevv
Duda en una Línea de Codigo
Programación C/C++
snoopty 7 4,025 Último mensaje 6 Diciembre 2021, 08:39 am
por snoopty
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines