Alguns compiladores permitem que a função main receba um terceiro parâmetro (além de argc e argv), que também é um vetor de strings e contém as variáveis de ambiente do sistema operacional. A sua estrutura é semelhante ao argv, mas não contém um contador associado. No entanto, após a última variável de ambiente sempre é colocado um NULL.
Todas as variáveis de ambiente têm um nome seguido do sinal de igual e do valor que contêm.
Exemplo:
COMSPEC=E: \WINDOWS\COMMAND.COM
PROMPT=$p$g
PATH=E:\WINDOWS;E:\WINDOWNS\COMMAND;C:\DOSFAX;C:\DOS;C:\BATS
TEMP=C:\TMP
Implemente um programa que liste todas as variáveis de ambiente existentes no seu computador.
Atenção: Esta possibilidade pode não estar presente no compilador que você está usando.
Passo 1
Fala aí! Essa aqui é bem específica, hein? Esses tais de argc e argv são parâmetros passados à função main capazes de dar acesso à linha de comando com a qual o programa foi chamado. O primeiro deles é um inteiro que indica o número de parâmetros passados ao programa, enquanto o segundo é um vetor de strings com todas as strings passadas na linha de comando.
Como sugerido pelo enunciado, a estrutura do nosso terceiro parâmetro é bem semelhante à do tal argv, e ele também será um ponteiro que aponta para um ponteiro para caractere, ou seja, o declaramos assim:
![]()
Eu escolhi chamá-lo de p, mas você pode chamar como quiser, desde que a declaração char **
Passo 2
Em seguida, abrimos um laço while para imprimir todas as linhas, ou strings de p, da seguinte forma:

Quando escrevemos while(*p), é a mesma coisa que escrever while(1), o que significa um laço “infinito”. Dentro deste laço, basta colocar um comando puts, para imprimir a string, e incrementamos p para fazê-lo com as linhas subsequentes.
Resposta
