Algunas preguntas de programación para estudiantes de primer año. Quiero saber los motivos de los errores ~ hay respuestas.
La primera pregunta
es una matriz de caracteres, que también puede considerarse como la dirección del primer elemento de la matriz cuando se usa en expresiones. No se puede utilizar como valor l, es decir, no se puede colocar en el lado izquierdo del símbolo de asignación "=". Puede entenderse como una constante que no se puede modificar. Entonces la opción D es definitivamente incorrecta.
El tipo de p es char*, opción C p="ABCD";
Hace que p apunte a "ABCD" almacenado en el área de constantes de caracteres, por supuesto que no hay problema.
En cuanto a la pregunta "¿No representa p una variable de dirección? ¿No debería agregarse la asignación con un asterisco?"
Si el símbolo de desreferencia * es agregado, p cambiará el contenido del lugar señalado, mientras que la opción C cambia el lugar señalado por p y cambia p en sí.
Y si se usa *, *p="ABCD";
Dicho código es incorrecto porque p apunta a char, que es una variable de carácter. Sólo puede ser *p='A';?//o *p='B'; *p='C' etc.
;