Um nível superior constem um argumento formal não faz parte do tipo de função. Você pode adicioná-lo ou removê-lo como quiser: isso afeta apenas o que você pode fazer com o argumento na implementação da função.
Portanto, argcvocê pode adicionar livremente um const.
Mas para argvvocê não pode fazer os dados de caractere constsem, portanto, alterar a assinatura da função. O que significa que não é uma das mainassinaturas de função padrão e não terá que ser reconhecida como uma mainfunção. Portanto, não é uma boa ideia.
Um bom motivo para não usar os mainargumentos padrão em programas que não sejam de brinquedo é que no Windows eles não podem representar argumentos de programa reais, como nomes de arquivo com caracteres internacionais. Isso ocorre porque no Windows eles são codificados por convenção muito forte como Windows ANSI. No Windows, você pode implementar algum recurso de acesso de argumento mais portátil em termos da GetCommandLinefunção API.
Resumindo, nada impede que você adicione consta argc, mas a maior utilidade constem argvforneceria uma mainfunção não padrão , muito provavelmente não reconhecida como tal. Felizmente (de uma forma irônica), há boas razões para não usar os mainargumentos padrão para código sério portátil. Simplesmente, para a prática, eles suportam apenas ASCII antigo, com apenas letras do alfabeto inglês.
argccomoconst.