cblc/exercicios/04/1pesquise_responda.md

1.6 KiB

Existe uma forma para alterar uma variável em uma função a partir de outra função? Como fazer isso?

Acredito que é possível utilizar o escopo das variáveis para determinar a melhor escolha. Para alguns casos é possível utilizar o escopo global da variável (ser declarada fora das funções).

Também temos o recurso extern, mais utilizado para programas com mais de um arquivo de código, explicado no livro C Programming Language, ainda no primeiro caṕítulo.

Podemos fazer também a passagem por referência, utilizando ponteiros. (Cap 5 C Programming Language).

Porque as variáveis de uma função, em princípio, são locais à própria função?

Acredito que primeiramente seja uma escolha na estruturação da própria linguagem C. Uma linguagem simples, estruturada, que é explicíta e que exige comprometimento do programador. Esta escolha permite ao programador maior controle do seu código e evita erros e problemas em programas mais longos. Tudo isto reflete a filosofia da linguagem e facilita a vida do programador: permite a utilização do mesmo nome de variável, ajuda para encontrar erros, debug, encapsulamento/estruturação de código personalizável, evita erros e variações indesejadas com as variáveis.

Se o valor associado a um ponteiro é um endereço, o que teremos com a avaliação de &NOME_DO_PONTEIRO?

Ponteiro são variáveis, portanto, teremos o endereço de memória onde variável ponteiro está armazenada.

#include <stdio.h>
//ponteiro não inicializado
int main() {
    int *ponteiro;
        printf(format: "%p\n", (void*)&ponteiro);
    return 0;
}