Sei sulla pagina 1di 1

#include <stdio.

h>

struct T {
int x; // Declarando um membro 'x' do tipo inteiro na estrutura 'T'
int y; // Declarando um membro 'y' do tipo inteiro na estrutura 'T'
};

typedef struct T T; // Definindo um typedef para a estrutura 'T'

void f1(T *a); // Declarando a função 'f1' que recebe um ponteiro para 'T'
void f2(int *b); // Declarando a função 'f2' que recebe um ponteiro para inteiro

int main() {
T a, b, *c, *d; // Declarando variáveis 'a' e 'b' do tipo 'T', e ponteiros 'c'
e 'd' para 'T'
c = &a; // Atribuindo o endereço de 'a' ao ponteiro 'c'
a.x = 2; // Atribuindo o valor 2 ao membro 'x' da estrutura 'a'
a.y = 4; // Atribuindo o valor 4 ao membro 'y' da estrutura 'a'
b.x = 2; // Atribuindo o valor 2 ao membro 'x' da estrutura 'b'
b.y = 2; // Atribuindo o valor 2 ao membro 'y' da estrutura 'b'
d = c; // Atribuindo o valor do ponteiro 'c' ao ponteiro 'd'
f1(d); // Chamando a função 'f1' com o ponteiro 'd' como argumento
b = *d; // Atribuindo o valor apontado por 'd' à estrutura 'b'
printf("x: %d \n", b.x); // Imprimindo o valor do membro 'x' da estrutura 'b'
printf("y: %d \n", b.y); // Imprimindo o valor do membro 'y' da estrutura 'b'
return 0;
}

void f1(T *a) {


f2(&(a->x)); // Chamando a função 'f2' com o endereço do membro 'x' da
estrutura apontada por 'a'
f2(&(a->y)); // Chamando a função 'f2' com o endereço do membro 'y' da
estrutura apontada por 'a'
}

void f2(int *b) {


*b = 2 * (*b); // Multiplicando o valor apontado por 'b' por 2 e atualizando o
valor
}

tem menu de contexto

Potrebbero piacerti anche