c-programming:pointers:pointer-to-pointer
Pointer to pointer
/* pointer to pointer */ #include <stdio.h> int main() { int a = 5; int *p0 = &a; int **p1 = &p0; int ***p2 = &p1; int ****p3 = &p2; int *****p4 = &p3; printf("address of a is: %p and p0 value is: %p\n", &a, p0); printf("address of p0 is: %p and p1 value is: %p\n", &p0, p1); printf("address of p1 is: %p and p2 value is: %p\n", &p1, p2); printf("address of p2 is: %p and p3 value is: %p\n", &p2, p3); printf("address of p3 is: %p and p4 value is: %p\n", &p3, p4); printf("value of a is: %d\n", a); printf("accessing value of a with p4: %d\n", *****p4); return 0; }
/* pointer to pointer */ #include <stdio.h> int main() { int x = 5; int *p = &x; int **q = &p; int ***r = &q; printf("----------------------------------------\n"); printf("variable \t| x, *p , **q, ***r \t| p, *q, **r \t| q, *r \t| r |\n"); printf("value \t| %18d \t| %018p \t| %018p \t| %018p |\n", x, p, q, r); printf("address \t| %018p \t| %018p \t| %018p \t| %018p |\n", &x, &p, &q, &r); printf("\n"); printf("\t\t x = %d\t\t p = %p\t q = %p\t r = %p\n", x, p, q, r); printf("\t\t *p = %d\t\t *q = %p\t *r = %p\n", *p, *q, *r); printf("\t\t **q = %d\t\t **r = %p\n", **q, **r); printf("\t\t ***r = %d\t\n ", ***r); printf("----------------------------------------\n"); return 0; }
/* pointer to pointer */ #include <stdio.h> int main() { int x = 5; int *p = &x; int **q = &p; int ***r = &q; printf("int x = 5;\n"); printf("int *p = &x;\n"); printf("int **q = &p;\n"); printf("int ***r = &q;\n"); printf("\n&x = %018p, &p = %018p, &q= %018p, &r = %018p\n\n", &x, &p, &q, &r); printf("x = %-18d \t\t *p = %-18d \t\t **q = %-18d \t\t ***r = %-18d \n", x, *p, **q, ***r); printf("p = %018p \t\t *q = %018p \t\t **r = %018p \n", p, *q, **r); printf("q = %018p \t\t *r = %018p \n", q, *r); printf("r = %018p \n", r); return 0; }
c-programming/pointers/pointer-to-pointer.txt · آخرین ویرایش: 2024/04/19 17:54 توسط pejman
