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

Đề tài: lại về con trỏ

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    3

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

    Cho mình hỏi cái ni` về con trỏ nhé:
    + 1 con trỏ luôn luôn có kiểu int với giá trị 2 byte
    vd :float *p; //con trỏ p có kiểu float nhưng bản thân p là kiểu int và bằng 2 byte

    + nhưng khi minh in giá trị địa chỉ ô nhớ mà con trỏ p lưu :0xff4f34da
    theo mã hexa rõ ràng địa chỉ này có 32 bit vậy tại sao 1 con trỏ chỉ có 2 byte =16 bit để lưu địa chỉ mà nó trỏ tới lại chứa được 32 bit địa chỉ như trên vậy ai biết chỉ dùm mình với nhé, thanks

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    186

    Trích dẫn Nguyên bản được gửi bởi dautomatnho Xem bài viết
    Cho mình hỏi cái ni` về con trỏ nhé:
    + 1 con trỏ luôn luôn có kiểu int với giá trị 2 byte
    vd :float *p; //con trỏ p có kiểu float nhưng bản thân p là kiểu int và bằng 2 byte

    + nhưng khi minh in giá trị địa chỉ ô nhớ mà con trỏ p lưu :0xff4f34da
    theo mã hexa rõ ràng địa chỉ này có 32 bit vậy tại sao 1 con trỏ chỉ có 2 byte =16 bit để lưu địa chỉ mà nó trỏ tới lại chứa được 32 bit địa chỉ như trên vậy ai biết chỉ dùm mình với nhé, thanks
    Sai rồi bạn ơi,

    1. Trong DOS (16 bit) con trỏ là 2 bytes
    2. Trong môi trường 32 bit con trỏ luôn luôn là 4 bytes


    Không tin bạn cứ dùng sizeof() in ra là biết liền ^^!
    Ước mơ vươn tới Linux Developer.
    Đang trong quá trình tập luyện:
    1. C system programming
    2. GNU distribution
    3. Gtk+/Gnome Application Programming.

    Bác nào giỏi lĩnh vực này giúp Kim với nha. Kim cám ơn nhiều !!!

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    3

    Code:
    #include "stdio.h"
    #include "conio.h"
    #include "iostream.h"
    void main() {
                     float * P;
                     float array[] = {9.0, 4.0, 5.0, 8.0, 7.0};
                     p= array;
                     
                     cout<<"\n địa chỉ mà P trỏ tơi ="<< P ;
                     cout<<"\n size của * P ="<< sizeof(* P);
                     cout<<"\n size của bản thân P ="<< sizeof( P );
    getch();
    }
    Kết quả khi run:
    địa chỉ mà P trỏ tơi =0x8f82ffde //theo hexa là 32 bit
    size của * P =4 //4 byte vì là float vẫn đúng
    size của bản thân P =2 //2 byte vậy P là 2 byte chứ có phải 4 byte như Kim bảo đâu, hay tôi chưa hiểu đúng y Kim nhỉ

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    cậu kim nói đúng rồi đấy,trên môi trường 32 bit thì con trỏ có kích thước là 4 byte,mình đoán cậu chạy bằng TC3.0 1 trình biên dịch của Dos nên mới có kết quả như trên

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    3

    vậy là thế nào , rõ ràng địa chỉ là 32 bit nhưng con tro chỉ co 2 byte, theo như cậu bảo môi truờng 32 bit sẽ là 4 byte vậy môi truong 32 bit lấy o dâu vậy, mình đúng là đang dùng TC 3.01 vậy dùng cái này con trỏ chỉ nhận 2 byte vậy khi lam chuơng trinh lien quan đến bô nhớ có sợ bị lỗi không , ai hiểu căn kẽ chỉ mình rõ rõ hơn đi,

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    14

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

    mình đúng là đang dùng TC 3.01
    Lấy DEV C hay VC++ dịch lại đi bạn
    Chỉ có thể biết nhiều hay ít, khó có thể biết cho đủ...

  7. #7
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    mình đúng là đang dùng TC 3.01 vậy dùng cái này con trỏ chỉ nhận 2 byte vậy khi lam chuơng trinh lien quan đến bô nhớ có sợ bị lỗi không , ai hiểu căn kẽ chỉ mình rõ rõ hơn đi,
    không sao đâu cậu,nhưng cậu định làm về vấn đề gì???

  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi dautomatnho Xem bài viết
    Cho mình hỏi cái ni` về con trỏ nhé:
    + 1 con trỏ luôn luôn có kiểu int với giá trị 2 byte
    vd :float *p; //con trỏ p có kiểu float nhưng bản thân p là kiểu int và bằng 2 byte

    + nhưng khi minh in giá trị địa chỉ ô nhớ mà con trỏ p lưu :0xff4f34da
    theo mã hexa rõ ràng địa chỉ này có 32 bit vậy tại sao 1 con trỏ chỉ có 2 byte =16 bit để lưu địa chỉ mà nó trỏ tới lại chứa được 32 bit địa chỉ như trên vậy ai biết chỉ dùm mình với nhé, thanks
    Vào đây đọc bạn sẽ hiểu hơn về con trỏ :
    http://forums.congdongcviet.com/showthread.php?t=11421
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yê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