cblc/exercicios/04/1pesquise_responda.md

26 lines
1.6 KiB
Markdown

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