Informática, perguntado por u7s3m3, 2 meses atrás

Questão 1

Sobre o escopo de funções, analise as asserções a seguir:


I- Durante a execução de um programa, todos os objetos criados fora de qualquer função são denominadas globais e todos os objetos criados dentro de uma função são denominadas locais.


Portanto,


II- os objetos locais existem apenas enquanto a função está em execução. Quando uma função é chamada, seus objetos internos são criados, passam a existir, ocupando parte da memória do computador, e podem ser utilizados plenamente. Quando a função termina, esses objetos são removidos da memória, deixam de existir e os dados que continham são descartados.


Analisando-se as asserções apresentadas, conclui-se que:


A) As duas afirmações são verdadeiras, e a segunda não justifica a primeira.

B) As duas afirmações são falsas.

C) As duas afirmações são verdadeiras, e a segunda justifica a primeira.

D) A primeira afirmação é falsa, e a segunda é verdadeira.

E) A primeira afirmação é verdadeira, e a segunda é falsa.

*RESPOSTA*

Anexos:

Soluções para a tarefa

Respondido por wow007
0

Para explicar melhor, vou tentar usar um exemplo:

int main(){

int aux = 9, b = 10;  

exemplo(aux, b);

cout << soma;

return 0;

}

void exemplo(int n1, int n2){

int soma = n1+n2;  

}

perceba que, se eu executar esse código, vai dar errado, já que a variável soma só foi declarada dentro da função exemplo. Observe, que a variável soma só é criada depois que eu chamei a função exemplo e passei os valores desejados. Ou seja, essa variável só vai existir enquanto a função estiver sendo executada. Além disso, mesmo ela tendo sido criada, só atua na função exemplo. Ou seja, essa variável só pode ser usada dentro daquela função, portanto não atua de forma global, então só vai ser utilizada temporariamente.

Por isso, se eu tivesse declarado a variável soma fora das funções main e exemplo, ela seria utilizável nas duas funções:

int soma;

void exemplo(int n1, int n2);

int main(){

int aux = 9, b = 10;

 

exemplo(aux, b);

cout << soma;

return 0;

}

void exemplo(int n1, int n2){

soma = n1+n2;

}

Então ela seria uma variável global.

Perguntas interessantes