Aritmética de Ponterios e endereços #10

Open
opened 2025-05-22 14:33:19 -03:00 by drginfo · 0 comments

Boa tarde a todos, fiz alguns testes com aritmética de ponteiros, para sanar a minha curiosidade, durante a aula de ontem...Somei e subtrai, para ver o que acontecia. Se quiserem podem fazer observações, e outras dicas e etc...


#include <stdio.h>

int main(void) {

        int a = 10;
        int b = 20;
        int *p = &a;

        printf("Ordem que foram declaradas as variáveis e ponteiro:\n\n");
        printf("Primeiro, a variável    : (a = 10)\n");
        printf("Segundo, a variável     : (b = 20)\n");
        printf("Terceiro, o ponteiro    : (*p = &a)\n");
        printf("---------------------------------------------------\n");

        printf("Endereço de (a)                         : %p\n", &a);
        printf("Valor de (a)                            : %d\n", a);
        printf("---------------------------------------------------\n");

        printf("Endereço de (b)                         : %p\n", &b);
        printf("Valor de (b)                            : %d\n", b);
        printf("---------------------------------------------------\n");

        printf("Endereço associado ao ponteiro (p - 1)  : %p\n", p - 1);
        printf("Aritmética de ponteiro (p - 1)          : %d\n", *(p - 1));
        printf("---------------------------------------------------\n");
        printf("Valor atribuido ao ponteiro (*p = &a)   : %d\n", *p);
        printf("Endereço do ponteiro (*p = &a)          : %p\n", p);

        printf("---------------------------------------------------\n");
        printf("Endereço associado ao ponteiro (p + 1)  : %p\n", p + 1);
        printf("Aritmética de ponteiro (p + 1)          : %d\n", *(p + 1));

        return 0;
}


Depois executei e obtive o resultado:

[$]:> ./ponteiro
Ordem que foram declaradas as variáveis e ponteiro:

Primeiro, a variável : (a = 10)
Segundo, a variável : (b = 20)
Terceiro, o ponteiro : (*p = &a)
---------------------------------------------------
Endereço de (a)    : 0x7ffe1d196a94
Valor de (a)     : 10
---------------------------------------------------
Endereço de (b)    : 0x7ffe1d196a90
Valor de (b)     : 20
---------------------------------------------------
Endereço associado ao ponteiro (p - 1)  : 0x7ffe1d196a90
Aritmética de ponteiro (p - 1)   : 20
---------------------------------------------------
Valor atribuido ao ponteiro (*p = &a)  : 10
Endereço do ponteiro (*p = &a)   : 0x7ffe1d196a94
---------------------------------------------------
Endereço associado ao ponteiro (p + 1)  : 0x7ffe1d196a98
Aritmética de ponteiro (p + 1)   : 488204948
Boa tarde a todos, fiz alguns testes com aritmética de ponteiros, para sanar a minha curiosidade, durante a aula de ontem...Somei e subtrai, para ver o que acontecia. Se quiserem podem fazer observações, e outras dicas e etc... ``` #include <stdio.h> int main(void) { int a = 10; int b = 20; int *p = &a; printf("Ordem que foram declaradas as variáveis e ponteiro:\n\n"); printf("Primeiro, a variável : (a = 10)\n"); printf("Segundo, a variável : (b = 20)\n"); printf("Terceiro, o ponteiro : (*p = &a)\n"); printf("---------------------------------------------------\n"); printf("Endereço de (a) : %p\n", &a); printf("Valor de (a) : %d\n", a); printf("---------------------------------------------------\n"); printf("Endereço de (b) : %p\n", &b); printf("Valor de (b) : %d\n", b); printf("---------------------------------------------------\n"); printf("Endereço associado ao ponteiro (p - 1) : %p\n", p - 1); printf("Aritmética de ponteiro (p - 1) : %d\n", *(p - 1)); printf("---------------------------------------------------\n"); printf("Valor atribuido ao ponteiro (*p = &a) : %d\n", *p); printf("Endereço do ponteiro (*p = &a) : %p\n", p); printf("---------------------------------------------------\n"); printf("Endereço associado ao ponteiro (p + 1) : %p\n", p + 1); printf("Aritmética de ponteiro (p + 1) : %d\n", *(p + 1)); return 0; } ``` ``` Depois executei e obtive o resultado: [$]:> ./ponteiro Ordem que foram declaradas as variáveis e ponteiro: Primeiro, a variável : (a = 10) Segundo, a variável : (b = 20) Terceiro, o ponteiro : (*p = &a) --------------------------------------------------- Endereço de (a) : 0x7ffe1d196a94 Valor de (a) : 10 --------------------------------------------------- Endereço de (b) : 0x7ffe1d196a90 Valor de (b) : 20 --------------------------------------------------- Endereço associado ao ponteiro (p - 1) : 0x7ffe1d196a90 Aritmética de ponteiro (p - 1) : 20 --------------------------------------------------- Valor atribuido ao ponteiro (*p = &a) : 10 Endereço do ponteiro (*p = &a) : 0x7ffe1d196a94 --------------------------------------------------- Endereço associado ao ponteiro (p + 1) : 0x7ffe1d196a98 Aritmética de ponteiro (p + 1) : 488204948 ```
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: blau_araujo/cblc#10
No description provided.