Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: Giúp em sáng tỏ 2 vấn đề về con trỏ này với!

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    1

    Question Giúp em sáng tỏ 2 vấn đề về con trỏ này với!

    void main()
    {
    char *p="Bui Tan Quang" khác hoàn toàn với char p[]="Bui Tan Quang";

    p++; Sai nếu khai báo là char p[];

    *p++; <<<<<<<<<<<<<<<<<<<<<<< báo lỗi tại đây Đúng nếu khai báo là char p[];
    p[2]='b';<<<<<<<<<<<<<<<<<<<<<<< báo lỗi tại đây Đúng nếu khai báo là char p[];
    }
    Tại sao lại khác biệt như thế trong khi giáo trình viết là *p <=> p[] vậy ạ?

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Bạn cần phải phân biệt const char *char const * <<- Câu này ngu quá, mọi người miễn comment nhé
    Phân biệt rồi ắt sẽ hiểu
    Đã được chỉnh sửa lần cuối bởi clchicken : 02-12-2011 lúc 02:22 AM.
    Um Mani Padme Hum...!!

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

    Sao lúc nào a cũng khó chịu vậy? Em hỏi thật mà, anh cứ mập mờ. Chẳng biết làm sao được!

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    552

    char *p // Bản thân nó là 1 con trỏ rất linh động. Nhưng:
    p="Blah blah..." ;// Đây chính là phép gán "Định mệnh". Con trỏ nó sẽ thành char const *. (một con trỏ hằng) Tức là giá trị các phần tử hiện tại của nó ko dc phép thay đổi. , nhưng có thể cho p trỏ đi chỗ khác, tức là thay đổi dc địa chỉ
    char p[]; Là một const char * . Tức là hằng con trỏ, ko thể nào thay đổi dc địa chỉ của nó nhưng có khả năng thay đổi dc giá trị các phần tử
    Để biết thêm thông tin chi tiết, vui lòng click chuột:
    http://diendan.congdongcviet.com/showthread.php?t=42977
    p/s Mình có khó chịu gì đâu ??? Mình vui tính thế này cơ mà
    Đã được chỉnh sửa lần cuối bởi clchicken : 02-12-2011 lúc 02:16 AM.
    Um Mani Padme Hum...!!

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    1

    Vậy xin anh trả lời giúp em:
    tại sao int *a hiểu theo "char const*" ngược lại int a[] thì lại "char* const". Cái này là quy ước của C hay được suy ra từ đâu đó? Nếu anh chỉ nói thế có lẽ 2 ngày sau em sẽ quên mất đó!

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Mặc định Giúp em sáng tỏ 2 vấn đề về con trỏ này với!

    ẹc, char * chứ ? Nãy giờ toàn nói char * mà, có int * gì đâu hả bạn thân mến . Thêm nữa, "const char *" chứ ko phải "char * const" :(

    char *a=" một đống linh tinh mà bạn gán " thì nó mới thành "const char *" chứ chỉ là char *a thì không . Nếu giờ cho nó trỏ đi chỗ khác thì có thể thoát nạn "const char *"
    const có nghĩa là HẰNG. Cái gì động đến HẰNG thì đều ko thể thay đổi.
    KDL const * tức là hằng con trỏ .const KDL * là con trỏ hằng. Và sự "phiền phức" của chúng thì mình cũng đã có nói cho bạn biết
    Bạn đọc cái link mình đưa ở trên đấy sẽ hiểu cặn kẽ hơn
    p/s: Đừng gọi mình bằng "anh", mình còn "bé" lắm
    @@ Bạn học đến struct rồi mà sao con trỏ vẫn chưa rõ là sao trời ???
    Đã được chỉnh sửa lần cuối bởi clchicken : 02-12-2011 lúc 02:04 AM.
    Um Mani Padme Hum...!!

  7. #7
    Ngày gia nhập
    09 2011
    Bài viết
    1

    Bạn nhầm rồi đấy "char const*" với "const char*" là giống nhau!!! còn "char const*" với "const *char"
    mới khác biệt chứ

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    552

    À, hix. Mình bị nhầm cái char * const
    const KDL * và KDL const * giống nhau. Còn cái kia là KDL * const
    :P sr nhé. ^^ Nhờ có bạn ko thì cũng điên loạn mất thôi
    Nhưng cái const * char là cái gì gì đấy??? Mình mới bik @@ ??
    Đã được chỉnh sửa lần cuối bởi clchicken : 02-12-2011 lúc 02:22 AM.
    Um Mani Padme Hum...!!

  9. #9
    Ngày gia nhập
    09 2011
    Bài viết
    1

    char* const
    VD: char* const p; // Khi đó địa chỉ mà p trỏ đến sẽ là một hằng số....
    ngược lại const char* p; //Khi đó địa chỉ p trỏ đến là một biến, nhưng hằng số lại là giá trị tại địa chỉ đó!

  10. #10
    Ngày gia nhập
    10 2011
    Bài viết
    552

    THế sao bạn bảo là const * char
    Trích dẫn Nguyên bản được gửi bởi lytieubinh_269 Xem bài viết
    Bạn nhầm rồi đấy "char const*" với "const char*" là giống nhau!!! còn "char const*" với "const *char"
    mới khác biệt chứ
    @ Cơ mà bạn "rành" thế rồi sao còn đi hỏi? Có ý gì đây ??
    Um Mani Padme Hum...!!

Các đề tài tương tự

  1. Sự cố Nhờ mod chuyển giúp bài "Sắp xếp số thứ tự ngay trong bảng của 1 database?" từ MySQL sang MSSQL giúp!
    Gửi bởi hu-xeko trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 1
    Bài viết cuối: 12-03-2012, 07:48 PM
  2. Mới nhập môn khó quá , cần trợ giúp [Vấn đề của bạn cần muốn giúp là gì ?]
    Gửi bởi cuingo212 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 22-10-2011, 08:43 AM
  3. Chương trình giúp một học sinh cấp 1 học phép nhân, xử lý hàm rand, giúp mình với?
    Gửi bởi chankx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 12-05-2009, 08:52 PM
  4. Code giúp add một key vào registry, ai giúp em?
    Gửi bởi olavien trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 12-12-2007, 08:45 AM

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