c y código fuente del puntero
p se refiere a la dirección del primer elemento de la matriz, por lo que *p es el valor de la dirección señalada por p.
El error es que str es un puntero a una cadena.
Por ejemplo
printf("s\n ", str); generará el programa completo.
Esto demuestra que el BCD está equivocado.
Representación de una cadena
En un programa C, hay dos formas de implementar una cadena.
1. Implementado por matriz de caracteres.
[Ejemplo 8.11]
Administrador no válido (no válido)
{cadena de caracteres estáticos [ ]= "¡Me encanta China!";
printf("s\n ", string);
}
Salida en tiempo de ejecución: ¡Me encanta China!
Igual que el atributo de matriz descrito anteriormente, cadena es el nombre de la matriz, que representa la primera dirección de la matriz de caracteres (ver Figura 8.17). Cadena [4] representa el elemento (V) con el número de secuencia 4 en la matriz. De hecho, la cadena [4] es * (cadena 4) y la cadena 4 es un puntero al carácter "V".
2. Se implementa mediante punteros de caracteres.
Puedes definir un puntero de carácter en lugar de una matriz de caracteres. Utilice un puntero de carácter para señalar un carácter en una cadena.
[Ejemplo 8.12]
Administrador no válido (no válido)
{char *string= "¡Me encanta China!";
printf ("s\n ", string);
}
No hay ninguna matriz de caracteres definida aquí, pero el lenguaje C trata las constantes de cadena como matrices de caracteres, que en realidad se asignan en la memoria. Cree una matriz de caracteres para almacenar la matriz de cadenas. En el programa se define una cadena variable de puntero de caracteres. Y asígnele la primera dirección de la cadena (es decir, la primera dirección de la matriz de caracteres utilizada para almacenar la cadena) (consulte la Figura 8.18). Algunas personas piensan que la cadena es una variable de cadena y piensan que se ha definido "¡Amo China!". Asignado a una variable de cadena, esto no es exacto.