Cita:  
					Iniciado por Principe_Azul 
  hola 
jhonny6721, creo que es opcional especificar el tamaño de un array, de todas maneras le especifiqué un tamaño por ejemplo 
20 y me devuelve el valor 
20, cosa que no debería suceder, ya que yo tengo por ejemplo 4 valores:    
Código C++:
Ver originalint N[20] = {1, 2 ,3, 6}
    N[6] = {4};
  
ahí quice agregar el quinto valor, pero no se agrega, también probé así:    
pero tampoco funciona, además me devuelve 
20 y yo tengo tan sólo 4 valores.
..................................................  ...
     Lo de especificar la dimensión del array no es que sea opcional, es una opción u otra. 
Por ejemplo si declaro:    
el tamaño del array está determinado impepinablemente por el número de componentes que hemos introducido entre las llaves. 
En cambio si declaro:    
Código C++:
Ver originalarray[20] = {3, 5, 8, 9, 1, 0,3, 5};
  
el array, desde que se inicializa al menos un elemento, se compone de veinte elementos, donde los no inicializados se inicializan a cero por defecto. Lo puedes comprobar recorriendo los veinte elementos del arrray con un for:  
 Cita:  array[0]= 3
array[1]= 5
array[2]= 8
array[3]= 9
array[4]= 1
array[5]= 0
array[6]= 3
array[7]= 5
array[8]= 2
array[9]= 0
array[10]= 0
array[11]= 0
array[12]= 0
array[13]= 0
array[14]= 0
array[15]= 0
array[16]= 0
array[17]= 0
array[18]= 0
array[19]= 0
Cantidad de elementos: 20
    El declarar 20 e inicializar unos pocos te permite agregar en las posiciones libres más elementos o variar la ya ocupada. Es decir puedes hacer tranquilamente en el ejemplo anterior:    
o bien:    
Y si lo que quieres saber es cuántos elementos realmente has declarado, sin incluir a los nulos que se rellenan por defecto, y en el supuesto de que no hallas introducido dos ceros consecutivos, siempre puedes hacer:    
Código C++:
Ver original#include <iostream>
 
using namespace std;
 
int main(){
    int i,cont=0,tam,array[20] = {3, 5, 8, 9, 1, 0,3, 5};
    array[8] = 2;
    tam=sizeof(array)/sizeof(array[0]);
    cout << endl<< "array["<<8<<"]= " << array[8] << endl<< endl<< endl;
    for (i=0;i<tam;i++){
      if (i+2<tam && array[i]==0 && array[i+1]==0 && array[i+2]==0)
        break;
      else {
        cout << "array["<<i<<"]= " << array[i] << endl;
        cont++;
      }
    }
    cout << "Cantidad de elementos: " << cont << endl;
    cout << endl;
    return 0;
}
  
Con la salida esperada:  
 Cita:  
array[8]= 2
 
 
array[0]= 3
array[1]= 5
array[2]= 8
array[3]= 9
array[4]= 1
array[5]= 0
array[6]= 3
array[7]= 5
array[8]= 2
Cantidad de elementos ocupados: 9
    ¡¡¡Saluditos!!!