1. En primer lugar tengo una duda con los arrays. Porque no se puede poner esto
"int cad[]={1}" y si esto "int cad{1, 7}" ? (el primero es un vector y el segundo una matriz).
2. porque no puedes hacer esto:?
#define MAX 5
typedef int a[MAX];
int a[MAX];
if(2<MAX)
Lo mismo, porque esto no me imprime 8?
#define HOLA 8
printf("HOLA");
porque esto si:
printf("%s",HOLA);
4. que quiere decir el compilador cuando te da un error de "Lvalue"?
HOla!Tal como dice Eternal, lo primero debe funcionar.
1. En primer lugar tengo una duda con los arrays. Porque no se puede poner esto
"int cad[]={1}" y si esto "int cad{1, 7}" ? (el primero es un vector y el segundo una matriz).
Cuando hay que asiganarle una cantidad de memoria fija a los arrays y cuando no hace falta, por ej cad[10]??? cuando puedes hacer esto "cad[]" o "cad[][]"??Si no sabes de antemano cuántos elementos vas a necesitar en el array, lo mejor es no declarar su tamaño y manipularlo dinámicamente en el programa. Si estás seguro de que tendrás como máximo N elementos en el array, y van a estar presentes durante la mayor parte de la ejecución del programa, entonces es conveniente definir el tamaño de manera "fija" (estáticamente).
4. que quiere decir el compilador cuando te da un error de "Lvalue"?Normalmente se deberá a que estás intentando modificar el valor de algún elemento que no puede ser modificado, aunque mejor hazle caso a Eternal y coloca la salida de error del compilador).
Respecto a la pregunta 1, la escribi mal. Queria decir, que por que se puede poner esto: "int cad[]={1}" o esto "int cad[]" y no esto "int cad[][]" o esto "int cad[][]={1,2}" ?El tamaño del primer subíndice no es necesario, pero si todos los subsecuentes, por ejemplo, esto si lo puedes hacer:
Por eso preguntaba tambien, que cuando se pueden dejar los arrays sin poner el tamaño completo, y cuando no. En este caso si pongo "int cad [8][8]", si me funciona. Si lo dejo como lo puse, el compilador me marca este error "Size of the type is unknown or zero"...
Otra pregunta, porque no me deja poner "cad[j]=i^2" y si "cad[j]=i*i;" ?? Como esque el compilador no reconoce el caracter ^ de elevado?Mmmh, aquí hay doble confusión. El compilador no debiera dar problemas para compilar eso, ¿qué error te da?. Y por otro lado en C/C++ no existe ningún operador para elevar un número a alguna potencia, ^ es el operador xor :P.
Eternal Idol, no entiendo lo que me dijiste de que me falta el codigo para la comprobación.