Por que es permitido inicialzar un puntero de tipo char asi:
char *nom="Jose";
si se supone que yo solo puedo inicilizar un apuntador de 4 maneras (que yo conosco)
1. Con el apuntador Nulo char *nom=NULL;
2. Con la direccion de otra variable char *nom=&n;
3. Con el operador New char *nom=new char;
4. Con otro apuntador char *nom=apell;
bueno esa seria una de mis dudas, la otra duda que tengo que se relaciona es:
Por que cuando yo hago lo siguiente:
Código C++:
Ver originalchar text="Good morning!"; // o asi char text[14]={'G','o','o','d',' ','m','o','r','n','i','n','g','!','\0'},
char *cPtr=&text[0]; // o asi char *cPtr=text;
cout<<cPtr; //aqui me muestra Good morning!
cout<<*cPtr; //aqui muestra la G
cout<<*(cPtr+3); //muestra la letra d
cout<<cPtr+3; //muestra d morning!
Mi duda es en la linea 4 y 7 por que el nombre del puntero me regresa el contenido del arreglo si se supone que el puntero contiene la direccion, por ejemplo si hago lo siguiente:
Código C++:
Ver originalint x[4]={56,87,6,32};
int *y=x;
cout<<y; // aqui me regresa la una direccion no el contenido como en el char
Otra duda, cuando yo quiero mostrar la direccion a la que apunta un puntero solo tengo que poner el nombre de mi puntero en un cout como:
Código C++:
Ver originalint x=5;
int *y=&x;
cout<<y; // aqui me mostraria la direccion como 0x003751E4
cout<<*y; //haria esto, si quisiera mostra el contenido de la direccion a la que apunta 5
pero si hago esto con un puntero a char pasa lo siguiente:
Código C++:
Ver originalchar n="como te llamas";
char *text=n;
cout<<text; // aqui me muestra directamente el contenido de la direccion a la que apunta "como te llamas"
cout<<*text; //aqui me muestra la letra c;
mi pregunta es, como puedo saber la direccion que a la que apunta text.
Bueno estas son mis dudas espero haberme dado a entender, y se los agradezco de antemano a aquellos que me contesten, gracias.