Thứ Sáu, 12 tháng 4, 2024

34.Con trỏ cấp 2

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ỏ cấp 2 hay 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ỏ cấp 2, có hai toán tử ** trước tên con trỏ.

int **p2;

Tương tự nếu bạn muốn lưu địa chỉ của con trỏ cấp 2 thì bạn cần con trỏ cấp 3, muốn lưu địa chỉ của con trỏ cấp 3 thì cần con trỏ cấp 4...

Số lượng dấu * trước tên biến sẽ thể hiện con trỏ là cấp 1, 2 , hay 3. Ví dụ *ptr là con trỏ cấp 1, **ptr là con con trỏ cấp 2 và ***ptr là con trỏ cấp 3

Chúng ta sẽ sử dụng code của bài trước để làm ví dụ. Đây là code bài trước:


#include<stdio.h>  
 
int main() {
    int number = 50;
    int *p;
    p = &number; // luu tru dia chi cua bien number
  
printf("Gia tri cua number la %d\n", number); // Lệnh in giá trị biến
    printf("Dia chi cua number la %p\n", &number); // Lệnh in địa chỉ lưu ý sử dụng %p
    printf("Gia trị cua number la %d\n", *p);// Toán tử * trước tên con trỏ, giá trị của biến number
    printf("Dia chi cua biến number la %p\n", p); //Tên con trỏ, địa chỉ của biến number

    return 0;
}

 

Chúng ta sẽ thêm một biến con trỏ cấp 2 gọi là p2 và gán giá trị cho nó là địa chỉ bộ nhớ của biến p.

 

#include<stdio.h>  
 
int main() {
    int number = 50;
    int *p;
    int **p2;    //con tro tro toi con tro
    p = &number; // luu tru dia chi cua bien number
    p2 = &p;
    printf("Gia tri cua number la %d\n", number); // Lệnh in giá trị biến
    printf("Dia chi cua number la %p\n", &number); // Lệnh in địa chỉ lưu ý sử dụng %p
    printf("Gia trị cua number la %d\n", *p);// Toán tử * trước tên con trỏ, giá trị của biến number
    printf("Dia chi cua biến number la %p\n", p); //Tên con trỏ, địa chỉ của biến number
    printf("Dia chi cua con trỏ p la %p \n", p2); //Địa chỉ của CON TRO p
    printf("Gia tri cua bien number la %d \n", **p2);//Giá trị của biến number
    return 0;
}

 

Bấm Run để chạy thử , chúng ta vẫn sử dụng IDE Online

Con trỏ cấp 2 trong lập trình C


Phần tiếp theo

Phần trước

Không có nhận xét nào:

Đăng nhận xét