portfolio
namespace ValoresTrocados // Nome do projeto
{
class Ponteiro { static void Main(string[] args) // Início da estrutura { int a, b; // Declaração das variáveis do tipo inteiro
a = Int32.Parse(Console.ReadLine()); // Converte o valor que for digitado (string) para a variável "a" para o tipo inteiro de 32bits. b = Int32.Parse(Console.ReadLine()); // Converte o valor que for digitado (string) para a variável "b" para o tipo inteiro de 32bits.
Console.WriteLine("Valor de A..: " + a); // Mostra o valor de "a" na tela. Console.WriteLine("Valor de B..: " + b); // Mostra o valor de "b" na tela.
unsafe // Sem segurança. É necessário quando usamos ponteiros. { inverterValores(&a, &b); // Parâmetro para inverter os valores do endereço de "a" e "b". }
Console.WriteLine(" "); // Pula uma linha (linha em branco).
Console.WriteLine("Valor de A..: " + a); // Mostra o valor de "a" na tela. Console.WriteLine("Valor de B..: " + b); // Mostra o valor de "b" na tela.
Console.WriteLine(" "); // Pula uma linha (linha em branco) Console.WriteLine("Pressione qualquer tecla para sair..."); // Escreve a mensagem na tela. Console.ReadKey(); // Espera uma tecla ser pressionada.
} private static unsafe void inverterValores(int *x, int *y) // Método criado para inverter os valores definindo os ponteiros X e Y (do tipo inteiro). { int aux; // Definição da variável auxiliar que receberá a passagem dos valores das vaiáveis. aux = *x; // aux recebe o ponteiro X. *x = *y; // O ponteiro X recebe o ponteiro Y. *y = aux; // O ponteiro Y recebe o