Bom dia amigo, como vai?
Eu também me considero iniciante nessa área, porém creio que o que já sei seja suficiente para te ajudar.
Vou enumerar minhas colocações e vou procurar seguir a ordem do seu post para facilitar:
1 - "void mostrar(int num[10]);" isso é um protótipo de função e não uma variável. beleza, mas o que é um protótipo de função? O protótipo é como um "aviso" para o compilador, do tipo: "fica esperto, meu programa possui essa função em algum lugar". Isso evita erros de compilação que podem ser gerados no caso de você usar uma função antes de defini-la. Não vou aprofundar mais que isso nesse assunto. Resumindo, esse trecho de código é o protótipo de uma função que será definida depois;
2 - main - o que é main? Ou melhor, método main? Main é simplesmente o método/função mais importante do seu programa! Agora que você está no início, o Main pode parecer meio, "inútil", porque tudo que você cria de código está sempre dentro dele. Porém, com certeza, você evoluirá, e logo você estará se aprofundando em Orientação a Objetos. Consequentemente passará a criar suas próprias classes (ou importar classes de outros). É aí que você vê o Main em ação. O Main é responsável por chamar suas classes. Ou seja, se você tem uma classe responsável por CalcularNotas, você só poderá usar essa classe se você a "instanciar" no Main. Pra fechar esse assunto, o main é como um "gerente", ou um "chefe" para todos os outros métodos que você possa utilizar;
3 - REPARE! Dentro do código do main, em um determinado momento, você "chama" a função "mostrar". Porém a função "mostrar" só é definida/criada lá no final do código, fora do main. Se você não tivesse criado o protótipo que eu expliquei no item 1 você poderia receber um erro de compilação, do tipo "Erro: não encontrei a função mencionada".
4 - Seguindo com seu código chegamos a primeira linha dentro do main. E você comentou corretamente. Trata-se da declaração de duas variáveis do tipo int, uma sendo um vetor de 10 elementos chamada "t" e a outra chamada "i";
5 - Chegamos no seu FOR. Você explicou bem o que ocorre no FOR, porém tem um pequeno detalhe. Você usa "i < 10". E você explica que o FOR ocorrerá até que "i" atinja o valor 10. Na verdade o FOR ocorrerá até "i" atingir o valor 9. Isso acontece porque o FOR só ocorre enquanto "i" for MENOR que 10, ou seja, 9 (porque 10 não é menor que 10). Para poder chegar até 10 você deve usar "i <= 10" ou "i < 11", nesse caso você inclui o valor 10. O seu FOR possui dois comandos. O primeiro atribui o valor de "i" ao elemento "i" do array "t". Na primeira iteração do FOR você terá "t[0] = 0;", na segunda terá "t[1] = 1; e assim por diante até chegar no 9, onde você terá "t[9] = 9;". O segundo comando é justamente a função que você criou para mostrar os valores dos elementos de "t";
6 - Eu montei o seu código aqui (usando c++) e o resultado gerado não é legal. Eu faria de forma diferente. A única coisa a fazer é colocar a chamada da sua função "mostrar" depois do laço FOR. Dessa forma o laço seria usado para atribuir os valores e, em seguida, a função "mostrar" exibe-os. Testei dessa forma e funcionou.
OBS: para o código não fechar muito rápido eu inseri uma linha que pede que uma tecla seja precionada para encerrar o programa. Assim podemos ver o resultado. Eu uso C++. Em C++ uso sytem("pause"); Não sei a síntese do equivalente em C, mas acho que deve ser fácil descobrir.
Espero não ter ficado confuso. Qualquer coisa estou a disposição.
Abraços! Boa sorte e bons estudos!
Espero não ter ficado confuso. Qualquer coisa estou a disposição.
Abraços! Boa sorte e bons estudos!