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

Đề tài: Gọi hàm con.. tiến hóa khôn lường

  1. #1
    Ngày gia nhập
    12 2010
    Nơi ở
    Vi Sơn Đảo.
    Bài viết
    83

    Thumbs down Gọi hàm con.. tiến hóa khôn lường

    Chẳng là : một bài tập về tree nhưng có 1 số chỗ khi gọi chương trình con thì nhiều cách quá... các bạn giải thích giùm mình nha!!thanks all
    ---------------------------------------------------
    Code:
    Struct cay{...};
    void main(){
          int x;
          cay *root; //cái này theo mình hiểu là lấy giá trị của cây thì phải.[:-(      
          insert(&root,x); // &root theo mình là địa chỉ gì đó...     
          root=NULL; // tại sao ở trên là *root nhưng xuống đây chỉ còn... root ?
    }
    insert(cay **root,int x){ //khó đỡ nỗi cái này.. **root      
          *root=NULL; // sao lại có 1 * thôi ta.      
          insert(&(*root),x);// 1 & rùi 1 * nữa...  
    }
    Lưu ý: bài viết trên em đã cắt gắn gọn so với thực tế ....
    ____________________________________
    Bạn hãy ghé thăm

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

    Mới đọc tiêu đề thì cớ ngỡ là khái niệm mới gì của c++, nào ngờ ...

    C++ Code:
    1. Struct cay{...};
    2. void main(){
    3.       int x;
    4.       cay *root; // ko có lấy giá trị gì ở đây cả, đơn giản là [B]khai báo biến[/B] con trỏ trỏ đến kiểu cấu trúc "cay"
    5.       insert(&root,x); // &root -> lấy địa chỉ của [B]biến[/B] root
    6.       root=NULL; // [B]gán giá trị cho biến[/B] con trỏ bằng NULL
    7.      
    8.       // Con trỏ cũng là [B]biến[/B], giống như biến int, long vậy thôi. Kiểu của nó là kiểu con trỏ, cách khai báo thì hơi khác người 1 tí ( phải thêm dấu * )    
    9. }
    10.  
    11. insert(cay **root,int x) { // đây là điều rất bình thường, root là con trỏ [B]trỏ đến một con trỏ khác[/B], mà con trỏ này lại trỏ tiếp tới cấu trúc "cay"
    12.       *root=NULL; // lấy giá trị, gán giá trị vào nơi biến con trỏ đang trỏ tới thì dùng * phía trước -> kiến thức c cơ bản
    13.       insert(&(*root),x);// đọc từ từ, ko có gì phải rối lên cả. (*root) -> lấy giá trị tại nơi con trỏ root đang trỏ tới rồi lấy địa chỉ của nó. Theo mình thì nên viết là insert(root, x) cho đỡ rối. 2 thằng đó tương đương với nhau.  
    14. }
    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.

  3. #3
    Ngày gia nhập
    12 2010
    Nơi ở
    Vi Sơn Đảo.
    Bài viết
    83

    Em cảm ơn anh đã chỉ hết mình.. chúc anh và diễn đàn luôn mạnh khỏe..
    ____________________________________
    Bạn hãy ghé thăm

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

    @meoconlongvang:
    insert(&(*root),x);// đọc từ từ, ko có gì phải rối lên cả.
    (*root) -> lấy giá trị tại nơi con trỏ root đang trỏ tới rồi lấy địa chỉ của nó. Theo mình thì nên viết là insert(root, x) cho đỡ rối. 2 thằng đó tương đương với nhau.
    }
    cay *rootcay root có gì khác nhau!!! tại sao ở trong này ko dùng là root ta.
    Và tại sao root và &(*root) tương đương nhau z. anh

  5. #5
    Ngày gia nhập
    12 2010
    Nơi ở
    Vi Sơn Đảo.
    Bài viết
    83

    Theo mình nghĩ thì root cay là dùng để thay thế biến chứ không phải là khai báo biến bằng con trỏ. còn root *cay là khai báo con trỏ.
    Còn cái ở dưới bạn thắc mắc thì mình cũng chưa hiểu lắm.
    ____________________________________
    Bạn hãy ghé thăm

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

    Mặc định Gọi hàm con.. tiến hóa khôn lường

    Trích dẫn Nguyên bản được gửi bởi kualalumpo Xem bài viết
    @meoconlongvang:
    cay *rootcay root có gì khác nhau!!! tại sao ở trong này ko dùng là root ta.
    Và tại sao root và &(*root) tương đương nhau z. anh
    cay *root là con trỏ, cay root là dữ liệu.
    root chứa địa chỉ của một giá trị nào đó, (*root) là lấy ra giá trị do root đang trỏ tới, & lại lấy địa chỉ của giá trị đó -> quanh đi quẩn lại thì cũng là root.
    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.

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

  1. Hướng dẫn một phương pháp mã hóa tiếng Việt
    Gửi bởi Ada trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 16
    Bài viết cuối: 22-01-2018, 01:39 AM
  2. Dịch vụ gửi hàng hóa đi Australia, gửi hàng hóa đi France, gửi hàng hóa đi Germany, gửi hàng hóa đi Janpan giá rẻ.
    Gửi bởi sales5ttico trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 30-07-2014, 02:51 PM
  3. Tính thành tiền trong bảng hóa đơn từ bảng chi tiết hóa đơn
    Gửi bởi tuanvi261 trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 2
    Bài viết cuối: 06-05-2013, 08:32 PM
  4. Hóa chất làm giảm điện trở đất, bột than tiếp địa, cọc tiếp địa, cọc thép mạ đồng, kim thu sét ese
    Gửi bởi chong set trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 18-04-2012, 12:33 PM

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