O que acontece quando tentamos armazenar um valor muito grande para uma variável do tipo int? Mostre com código.
int a = 2147483647; // Valor máximo para um int
a = a + 1; // Extrapolando o valor máximo
printf(

Passo 1

Vamos entender o que a questão está pedindo. Você quer saber o que acontece quando tentamos armazenar um valor muito grande em uma variável do tipo int em C. Para isso, vamos usar o código que você forneceu e explorar o conceito de overflow de inteiros, que é quando um valor excede o limite máximo que uma variável pode armazenar.

Passo 2

Primeiro, vamos olhar para o valor atribuído à variável a:
int a = 2147483647; // Valor máximo para um int
Aqui, 2147483647 é o maior número que um int pode armazenar em muitas linguagens de programação que usam 32 bits para inteiros. Esse valor é conhecido como INT_MAX.

Passo 3

Em seguida, tentamos adicionar 1 a esse valor:
a = a + 1; // Extrapolando o valor máximo
Quando fazemos isso, estamos tentando atribuir um valor que excede o limite máximo que a variável int pode suportar. Isso causa o que chamamos de overflow.

Passo 4

Na maioria dos sistemas que usam representação em complemento de dois para números inteiros, adicionar 1 ao INT_MAX faz com que o valor “dê a volta” e se torne o valor mínimo que um int pode armazenar, que é -2147483648 (conhecido como INT_MIN).

Passo 5

Então, quando executamos o printf para exibir o valor de a após a adição, ele mostrará esse valor “dado a volta”:
printf("%d", a); // Isso vai imprimir -2147483648

Resposta

Após a operação, o valor de a será -2147483648.

Exercícios relacionados