ابزار کاربر

ابزار سایت


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

به جز مواردی که ذکر می‌شود، مابقی محتویات ویکی تحت مجوز زیر می‌باشند: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki