Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Hỏi về con trỏ

  1. #1
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Mặc định Hỏi về con trỏ

    Hix bữa đi học ko nghe thầy giảng nên chẳng hiểu con trỏ là gì

    Đọc giáo trình thấy có mấy cái này mong mọi người giải thích

    int a=5;
    int *p;
    p=&a;
    *p=10;


    Mấy cái dòng đỏ đỏ chưa rõ , mong mọi người giúp cho , thank

  2. #2
    Ngày gia nhập
    04 2007
    Nơi ở
    tphcm
    Bài viết
    5

    mình cũng mới học con trỏ, theo hình hiểu:
    int *p : là khai báo biến con trỏ p cấp 1
    p=&a : là gán địa chỉ của a vào con trỏ p (vd : a có giá trị là 5 và có địa chỉ tại vùng nhớ trên ram là 11f thì khi bạn gán p=&a , thì lúc này con trỏ p sẽ có giá trị là đại chỉ cùa a là 11 f )
    *p=10; là con trỏ cấp 1 có giá trị là 10
    Mình chỉ biết vậy thôi, bạn hỏi các bác pro sẽ giải thích kĩ hơn

  3. #3
    Ngày gia nhập
    03 2007
    Nơi ở
    hà nội
    Bài viết
    1

    Mặc định con tro

    con tro la de truy cap toi bien thong qua dia chi cua bien trong bo nho.con tro nay chi luu gia tri cua bien chu khong lam thay doi gia tri cua cua bien
    tru khi su dung them nhung toan tu trong than ham.
    trong doan lenh ma ban vua neu tren la khai bao mot bien kieu nguyen co ten a gia tri bang 5 va mot bien con tro p
    kieu nguyen (luu y la ten bien ma duoc con tro tro den phai cung kieu du lieu.).
    cau lenh thu 3 chinh la dieu quan trong trong con tro. con tro p no luu dia chi cua bien a ma gia tri cua a lai bang 5.
    ban co the tham khao doan lenh sau:
    /* Cong hang so */

    #include <stdio.h>
    #include <conio.h>

    void main(void)
    {
    int ix = 6, iy = 7;
    int *px, *py;
    printf("x = %d, y = %d\n", ix, iy);
    px = &ix;
    py = &iy;
    *px += 10;
    *py += 10;
    printf("x = %d, y = %d\n", ix, iy);
    getch();
    }
    giai thich:
    khai bao 2 bien nguyen la ix =6, iy=7;
    khai bao 2 bien con tro cung kieu nguyen la: *px va*py.
    px tro toi ix va py tro toi iy. (tuc la 2 con tro px va py chua 2 gia tri cua ix va iy.)
    px = &ix;
    py = &iy; /*chu y toi phep toan lay dia chi &*/
    hai cau lenh nay da chung minh nhung dieu da noi o tren. trong con tro toi chi noi cac phan co ban cho ban biet, ban co gang tim hieu them tai lieu.
    chuc ban may man.

  4. #4
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Trích dẫn Nguyên bản được gửi bởi manutd1988 Xem bài viết
    Hix bữa đi học ko nghe thầy giảng nên chẳng hiểu con trỏ là gì

    Đọc giáo trình thấy có mấy cái này mong mọi người giải thích

    int a=5;
    int *p;
    p=&a;
    *p=10;


    Mấy cái dòng đỏ đỏ chưa rõ , mong mọi người giúp cho , thank
    Cái này chủ yếu nói ta có thể dùng con trỏ để làm thay đổi biến mà nó tham chiếu tới.

    OoShinHaoO

  5. #5
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Giờ hiểu thế này :
    int a;
    int *p; : p là con trỏ int
    p=&a; : p chứa địa chỉ của biến a và p trỏ đến biến a
    p=&a; :ô nhớ của biến a được con trỏ p trỏ tới
    *p=10; : giá trị của ô nhớ mà p trỏ đến được gán la 10

    Không biết có đúng ko ,cái nào đúng , cái nào ko đúng ,mong mọi người chỉ rõ giùm mình nhé

    thank
    Đã được chỉnh sửa lần cuối bởi manutd1988 : 04-05-2007 lúc 08:24 PM.

  6. #6
    Ngày gia nhập
    03 2007
    Bài viết
    15

    Mặc định Hỏi về con trỏ

    Thực chất biến con trỏ là dùng để lưu địa chỉ của 1 biến..Mà muốn biết địa chỉ của 1 biến thì ta dùng toán tử &.Và kiểu của con trỏ phải cùng với kiểu của biến mà bạn muốn lưu địa chỉ.1 biến con trỏ có kích thước là 4 byte.=>Khi bạn muốn lưu 1 địa chỉ của 1 biến a kiểu int trong 1 con trỏ pInt thì làm như sau:
    int *pInt;//Khai báo con trỏ pInt
    int a;
    pInt = &a;
    Khi giữ được địa chỉ của biến rồi ,thì bạn có thể muốn thao tác với dữ liệu tại địa chỉ đó.Muốn làm như thế thì bạn có thể dùng toán tử de-reference (dịch đại là khử địa chỉ) để thao tác.
    =>muốn gán a = 10 ,thì bạn có thể thao tác thông qua con trỏ như sau:
    *pInt = 10;

  7. #7
    Ngày gia nhập
    04 2007
    Bài viết
    16

    CON TRỎ DÙNG ĐỂ CHỨA ĐỊA CHỈ Ô NHỚ
    CÓ RẤT NHIỀU CÁCH DÙNG
    -- MẢNG DÙNG NHƯ CON TRỎ
    -- CON TRỎ DÙNG NHƯ MẢNG
    -- CON TRỎ VÀ CẤU TRÚC

    VÍ DỤ SAU RẤT HAY

    VOID *P;
    CHAR C = 'A';
    INT N = 1;
    FLOAT R = 0.5;
    P = &C;
    PRINTF("%C",*((CHAR*)P);
    P = &N;
    PRINTF("%D",*((INT*)P);
    P = &R;
    PRINTF("%F",*((FLOAT*)P);
    CÁC BẠN XEM THỬ KẾT QUẢ NHƯ THẾ NÀO

    --------------------------------------------
    -- CÓ LOẠI CON TRỎ KÉP
    CHAR **P;
    CHAR ***P;
    -- CÓ LOẠI CON TRỎ CHỈ HÀM
    INT (*P)();
    INT FUNC();
    P = FUNC();

    CHẮC CÓ VẬY THÔI...............

    __________________________________________________ _______________
    Phong độ là tức thời
    đẳng cấp là vĩnh viễn

  8. #8
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    thank mọi người nhiều , giờ thì mình đã hiểu

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn