Lập trình C - Con trỏ trỏ tới con trỏ

Con trỏ trỏ tới con trỏ trong C

Như bạn đã biết bản chất của con trỏ trong C là nó trỏ đến địa chỉ ô nhớ của một giá trị, con trỏ cũng là một biến. Vậy khái niệm con trỏ trỏ tới con trỏ trong C là con trỏ trỏ đến địa chỉ ô nhớ của một con trỏ khác.


Cú pháp

Cú pháp của con trỏ trỏ tới con trỏ.

int **p2;

Ví dụ con trỏ trỏ tới con trỏ trong C

Hãy xem một ví dụ về một con trỏ trỏ đến địa chỉ của một con trỏ khác.

Ví dụ con trỏ trỏ tới con trỏ trong C

Như bạn thấy trong hình trên, p2 chứa địa chỉ của p (fff2) và p chứa địa chỉ của biến number (fff4).

#include<stdio.h>
 
int main() {
    int number = 50;
    int *p;      //con tro tro toi int
    int **p2;    //con tro tro toi con tro
    p = &number; //luu tru dia chi cua bien number
    p2 = &p;
    printf("Dia chi cua bien number la %x \n", &number);
    printf("Dia chi cua bien p la %x \n", p);
    printf("Gia tri cua bien *p la %d \n", *p);
    printf("Dia chi cua bien p2 la %x \n", p2);
    printf("Gia tri cua bien **p2 la %d \n", **p2);
    return 0;
}

Kết quả:

Dia chi cua bien number la 23f
Dia chi cua bien p la 23fe44
Gia tri cua bien *p la 50
Dia chi cua bien p2 la 23fe38
Gia tri cua bien **p2 la 50