cblc/aulas/02-dados-e-instrucoes/README.org
2025-03-16 10:30:59 -03:00

4.9 KiB

Curso Básico da Linguagem C

Aula 2: Dados e instruções

Vídeo desta aula

Programas podem ser entendidos como formas de manipular dados através de instruções para realizar tarefas.

Instruções

  • Declarações de variáveis e funções
  • Atribuições e alterações de variáveis
  • Chamadas de funções
  • Retorno de funções, etc…

Toda instrução simples é terminada com ;.

Dados

  • Constantes simbólicas
  • Expressões constantes
  • Operações lógicas e aritméticas
  • Valores retornados por funções
  • Endereços de memória, etc…

Tudo que expressa um valor é chamado de expressão.

Exemplo (x10.c)

#include <stdio.h>

int main(void) {
    int num;

    num = 5;

    printf("%d x 10 = %d\n", num, num * 10);
    return 0;
}

O que temos aqui:

  • int num; → Declaração da variável num.
  • num = 5; → Atribuição de um valor à variável num.
  • printf(...); → Chamada da função printf.
  • "%d x 10 = %d\n" → Primeiro argumento da função printf.
  • num → Acesso ao dado na variável num.
  • num * 10 → Dado na variável num vezes 10.

Outro exemplo (x10const.c)

#include <stdio.h>

#define MULT 10  // Multiplicador.

int main(void) {
    int num = 5;

    printf("%d x 10 = %d\n", num, num * MULT);
    return 0;
}

O que há de novo:

  • #define MULT 10 → Definição da constante simbólica MULT.
  • int num = 5; → Inicialização da variável num na própria declaração.
  • num * MULT → Dado em num vezes a expansão de MULT.

O valor de MULT será expandido no pré-processamento!

Mais um exemplo (quadrado.c)

#include <stdio.h>

int quadrado(int base) {
    return base * base;
}

int main(void) {
    int num = 5;

    printf("%d^2 = %d\n", num, quadrado(num));
    return 0;
}

O que há de novo desta vez:

  • int quadrado(int base)... → Definição da função quadrado.
  • return base * base → Retorno da função quadrado.
  • quadrado(num); → Chamada da função quadrado.

Dúvidas

Para que serve a função main?

A função main é o ponto de entrada do programa, ou seja, é o ponto a partir do qual o programa começará a ser executado. Quando a função main termina, o programa é terminado retornando um valor inteiro (int) para o sistema, que utilizará este valor como estado de término do programa.

Qual é o significado de void?

No exemplo da aula, void (que significa vazio) é utilizado para explicitar que a função main não receberá argumentos:

int main(void) { /* ... */ }

Isso não é obrigatório e existem situações em que a função main receberá dados do ambiente de execução (sistema operacional), como argumentos de linha de comando e variáveis exportadas para o programa, por exemplo:

int main(int arg, char **argv) { /* ... */ }

A palavra-chave void tem outros usos não relacionados com o caso do exemplo da aula.

Por que o tipo do retorno de main é int?

Para atender às especificações da linguagem (5.1.2.2.1 Program startup).

A função main poderia retornar outros tipos de dados?

Em tese, sim, mas a função main tem um papel diferenciado e deve seguir as especificações da linguagem.

Video sobre o retorno da função main.

A função main poderia retornar uma string?

Além do que foi respondido antes, nenhuma função pode retornar vetores: e strings são vetores de caracteres terminados com o caractere nulo (\0).

Por que o cabeçalho stdio.h foi incluído no programa?

Para que pudéssemos utilizar a função printf.

A linguagem C implementa muito poucas instruções nativas, deixando a implementação de outras funcionalidades e abstrações para as funções da biblioteca C padrão. Por sua vez, a biblioteca C padrão é muito grande e possui centenas de funções implementadas. Então, para otimizar o acesso a elas, nós só precisamos das declarações das funções que serão efetivamente utilizadas nos nossos programas.

Nós poderíamos fazer essas declarações nos códigos onde elas fossem utilizadas, mas a própria biblioteca padrão oferece vários arquivos de cabeçalhos: arquivos contendo declarações de funções e outras definições, que podem ser inseridos nos nossos códigos apenas quando necessário.