1. CHUYÊN ĐỀ HỌC TẬP CỦA THÁNG 4/2014 : DOTNETNUKE
    Liên hệ: https://www.facebook.com/phuocthanh.cao.5 để cùng tham gia!
  1. caophuocthanh

    Biến con trỏ trong lập trình C



    Định nghĩa: Biến trỏ là một biến dùng để chứa địa chỉ của biến khác.

    Để khai báo một biến trỏ ta có cú pháp sau:

    Syntax Code:
    KDL *TênBiến;

    ví dụ:

    C Code:
    PHP:
    int *x;


    Ta nói x là một biến trỏ chứa địa chỉ của một biến có kiểu DKL là int (hay trỏ tới một biến có kiểu dữ liệu int).
    Do biến trỏ chỉ chứa địa chỉ của biến khác nên độ lớn của nó thường là 2 byte bất kể nó chứa địa chỉ của biến có kiểu dữ liệu nào.

    C Code:
    PHP:
    int *a;
    double *b;
    if(
    sizeof(a)==sizeof(b))
    {
        
    printf("hai bien nay co kich thuong bang nhau");
    }


    Để sử dụng biến trỏ này ta phải trỏ nó tới một biến, bằng cách gán địa chỉ của biến cần trỏ tới vào biến trỏ với tóan tử lấy địa chỉ &

    Syntax Code:
    TênBiếnTrỏ=&TênBiếnThường;

    Ví dụ:

    C Code:
    PHP:
    int *ptr;
    int a=1;
    ptr=&a;


    Ta có thể thay đổi để biến trỏ đang trỏ tới biến này sang trỏ tới một biến khác.

    C Code:
    PHP:
    int *ptr;
    int a=1,b=2;
    ptr=&a;
    //..............
    ptr=&b;


    ta có thể vừa khai báo vừa trỏ tới một biến khác

    C Code:
    PHP:
    int a;
    int *ptr=&a;


    Cách sử dụng biến trỏ: để biết cách làm việc của biến trỏ ta lưu ý một số phép toán như sau:
    & phép toán này đặt trước một biến thường dùng để lấy địa chỉ của biến.
    * phép toán này được đặt trước biến trỏ dùng để lấy nội dung của biến mà biến trỏ trỏ tới.
    ví dụ:

    C Code:
    Mã:
    int a=2,*b=&a;
    printf("Noi dung cua bien a la :%d",*b);


    ví dụ trên tôi đã dùng biến trỏ b trỏ đến biến a và thông qua tóan tử * tôi truy cập được nội dung của biến a.
    Ngòai ra ta còn có thể thông qua tóan tử * để sửa đổi nội dung của biến mà con trỏ đang trỏ tới.

    C Code:
    PHP:
    int a=2,*ptr=&a;
    *
    ptr=3;
    printf("Noi dung cua bi thay doi bang:%d",a);


    ví dụ trên ta sẽ nhận được a=3; do ta đã dùng * thông qua ptr truy cập và sử đổi nội dung của biến a.
    Đến đây các bạn vẫn chưa thấy hết tinh hoa của con trỏ phần tiếp theo tôi sẽ mở rộng vấn đề con trỏ thêm. Có rất nhiều người nói nếu bạn là một lập trình viên C mà không nắm hết con trỏ tức là bạn chưa biết gì về C. Hẹn gặp lại.