Um array sempre tem um elemento zero. Enquanto o elemento zero não se mostra quando um array apresenta um formulário de objeto, não há restrição para utilizá-lo com a linguagem. 
 Um exemplo de uso do elemento zero é o caso da combo box discutido na seção Arrays e objetos de formulário.
 Seguem dois outros exemplos.
1. Se você quiser executar uma ação apenas quando clicar em um elemento diferente do elemento previamente selecionado, você deve fazer o seguimento de cada elemento selecionado. Uma maneira de fazer isso é usando uma variável de processo, na qual se mantém o número do elemento selecionado. Outra maneiro é usando o elemento zero do array:
   
 Case of
    :(Form event=On Load)
  
       ARRAY TEXT(atNomes;5)
  
  
  
  
       atNomes{0}:="0"
 
    :(Form event=On Unload)
  
       CLEAR VARIABLE(atNames)
 
    :(Form event=On Clicked)
       If(atNames#0)
          If(atNames#Num(atNomes{0}))
             vtInfo:="Clique em: "+atNomes{atNomes}+" que não foi selecionado anteriormente."
             atNomes{0}:=String(atNombres)
          End if
       End if
    :(Form event=On Double Clicked)
       If(atNomes#0)
          ALERT("Você faz clique duplo em: "+atNomes{atNomes}
       End if
 End case2. No modo de compatibilidade ASCII, quando se envia ou recebe um fluxo de caracteres de ou para um documento de porta serial, 4D oferece a possibilidade de filtrar os códigos ASCII entre as plataformas e sistemas que utilizam diferentes mapas ASCII— com os comandos , Mac to ISO, ISO to Mac, Mac to Win y Win to Mac. 
 Em alguns casos, você pode querer controle total sobre o modo como os códigos ASCII. Uma maneira de se fazer isso é usando um array de inteiros de 255 elementos, onde o elemento N é a tradução ASCII do caracter cuja fonte de código ASCII é N. Por exemplo, se o código ASCII #187 deve ser traduzido como #156, você deve escrever <>aiMapaSaida{187}:=156 y <>aiMapaEntrada{156}:=187 no método que inicializa os arrays de inter-processo utilizados na base de dados. Então, você pode mandar um fluxo de caracteres com o seguinte método de projeto personalizado:
   
 If(Count parameters>=2)
    RECEIVE PACKET($2;$1)
 Else
    RECEIVE PACKET($1)
 End if
 $0:=$1
 For($vlCar;1;Length($1))
    $0[[vlCar]]:=Char(◊<span class="rte4d_prm">aiMapaEntrada</span><gen9>{ASCII($0[[vlCar]])})
 End for</gen9>Neste exemplo avançado, se um fluxo de caracteres contém caracteres NULL (código ASCII zero) é enviado ou recebido, o elemento zero dos arrays <>aiMapaSaida e <>aiMapaEntrada cumprirá seu papel como outro elemento dos outros 255 elementos dos 255 arrays.
(*) No entanto, há uma exceção: nos List Box de tipo  array, o elemento zero se utiliza internamente para guardar o valor anterior  de um elemento em edição, de forma que não é possível utilizar neste contexto particular.