Bueno tengo una duda ya yo domino las funciones
y la única cosa que no entiendo es 'Private Sub', 'Public Sub' y 'Sub'.
y la única cosa que no entiendo es 'Private Sub', 'Public Sub' y 'Sub'.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: SARGE553413 en 22 Abril 2013, 23:39 PM
Saludos.
Un array es un puntero al primer elemento de éste, como dices en tu ejemplo, efectivamente apunta a la letra 'E'. De hecho te invito a que pruebes esto:
char c[]="Puntero";
cout<<*c<<endl;
cout<<*(c+(1*sizeof(char)))<<endl;
Comprobarás que sale por pantalla la letra 'P' y luego la 'u'.
Pero un array tiene la salvedad de que está indexado, es decir, podemos acceder a sus componentes sin pasar primero por todas las anteriores (por ej. v[5] --> accedo directamente a la 6ª componente), cosa que por ej. una lista enlazada de nodos, no.
No estoy seguro, pero al acceder a los índices del array en cuestión, me imagino que tomará el puntero al primer elemento y le sumara n*sizeof(<tipo_array>), tal como he hecho en mi ejemplo.
Saludos.
Citar
char c[]="Puntero";
cout<<*c<<endl;
cout<<*(c+(1*sizeof(char)))<<endl;
Citar
char c[]="Puntero";
cout << c[0] << endl;
cout << c[1] << endl;
Cita de: durasno en 22 Abril 2013, 02:40 AM
Tal vez: El nombre del array no es mas que un puntero que apunta al primer elemento xD. Al ser un puntero se lo puede tratar como tal, por ejemplo:char arrNombre[]="Yahoo";
printf("%c\n",arrNombre[i]); /* imprime un caracter usando subindices */
printf("%c\n",*(arrNombre+i)); /* imprime un caracter usando aritmetica de punteros */
Saludos
PD: en el proceso de compilacion se traduce arrNombre en *(arrNombre+i)
PD: la palabra no seria almacenar sino apuntar, ya que en el caso del char * lo que hace nombre es apuntar a la direccion donde se encuentra la palabra "Yahoo"
Cita de: amchacon en 22 Abril 2013, 00:23 AM
Los char* son la excepción a los punteros. Por ayuda sintactica se permite:char nombre[] = "Yahoo";
char* nombre = "Yahoo";
Ambos significan lo mismo. De hecho un array no es más que un puntero a su primer elemento.
Citar
De hecho un array no es más que un puntero a su primer elemento.
Cita de: rir3760 en 18 Abril 2013, 01:16 AM
Porque las constantes que utilizas en las dos llamadas:holaxd(12.2, 12.2);
holaxd(24.2, 24.2);
Son de tipo double y eso resulta en dos llamadas a la misma funcion.
Para obtener el resultado que esperas debes utilizar como argumentos variables de tipo float o bien utilizar constantes con el sufijo 'F'. Por ejemplo:holaxd(12.2, 12.2);
holaxd(24.2F, 24.2F);
Citar
Esta parte no la entendi, ¿Puedes explicarlo de una forma mas clara?
Un saludo
#include <iostream>
using namespace std;
void holaxd(float,float);
void holaxd(double,double);
int main()
{
holaxd(12.2,12.2);
holaxd(24.2,24.2);
system("PAUSE");
return 0;
}
void holaxd(float n,float y)
{
cout <<"FLOAT!"<<endl;
cout << n + y << endl;
}
void holaxd(double x, double z)
{
cout <<"DOUBLE!"<<endl;
cout << x - z << endl;
}
CitarDOUBLE!
0
DOUBLE!
0