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

Đề tài: hỏi về reference

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

    Post hỏi về reference

    If information is to be passed into a function and doesn't have to be returned or passed out of the function, then the formal parameter representing that information should be a value parameter. A parameter used in this way is called an input parameter
    If information is to be returned to the calling function through a parameter, then the formal parameter representing that information must be a reference parameter. A parameter used in this way is called an output parameter
    If information is to be passed into a function , perhaps modified, and a new value returned, then the formal parameter representing that information must be a reference parameter. A parameter used in this way is called an input/ output parameter
    em chưa hiểu đoạn này cho lắm về cách dùng reference and value ... bác nào chỉ hộ em với
    và đoạn code sau nữa

    Code:
    void order (float &x.float &y)
    {
    float temp;
    if (x>y )
    {
    temp = x;
    x = y ;
    y = temp;
    }
    }
    cái khúc mà x > y, rồi temp nhận giá trị của x, x nhận y, y nhận temp, em không hiểu tại sao nó lại sort dược 3 số... mây pro explain dùm mình nha
    em hiểu như vậy có đúng không :
    nếu x > y , thì temp nhận giá trị của x, x lúc này là rỗng ( do pass by reference, ), sau đó gán x=y, y lúc này rỗng, sau đó nhận giá trị của temp
    Đã được chỉnh sửa lần cuối bởi Se7Olutionyg : 20-12-2008 lúc 01:56 PM.

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Cái này không phải sort mà là đổi giá trị của 2 số dùng biến tạm thời tên là temp;. Nếu không pass reference thì nó là 1 copy của biến được truyền vào, nghĩa là :
    Code:
    void order( float &x.float &y )
    2 thằng in đậm đó.
    Nên sau khi hàm order kết thúc thì 2 biến kia chẳng có gì thay đổi. Trong khi nếu dùng tham chiếu cái dấu & thì giá trị của 2 thằng đó sau hàm sẽ bị thay đổi.
    Còn cái giải thuật swap 2 số thì hiểu như vậy :
    Bây giờ x = 2, y = 1;
    Chạy giải thuật :
    1. Rõ ràng x > y( <=> 2 > 1 ), vào câu lệnh if.
    2. temp = x suy ra temp = 2;
    3. x = y suy ra x = 1.
    4. y = temp suy ra y = 2;
    5. Lúc này x và y bằng mấy ?
    Nếu không dùm hàm reference được hiểu như sau :
    C++ Code:
    1. #include <iostream>
    2.  
    3. using std::cout;
    4. using std::endl;
    5.  
    6. int main()
    7. {
    8.     int x = 10;
    9.     int& iam_ref_to_x = x;
    10.  
    11.     cout << "x = " << x << endl;
    12.     cout << "iam_ref_to_x = " << iam_ref_to_x << endl;
    13.  
    14.     iam_ref_to_x = 5;
    15.     cout << "x = " << x << endl;
    16.     cout << "iam_ref_to_x = " << iam_ref_to_x << endl;
    17.  
    18.     return 0;
    19. }
    Bây giờ 1 ví dụ dùng hàm xem sao
    C++ Code:
    1. #include <iostream>
    2.  
    3. using std::cout;
    4. using std::endl;
    5.  
    6. void reference_to_x( int& x ) {
    7.     x = 5;
    8. }
    9.  
    10. void do_a_copy_of_x_only( int x ) {
    11.     x = 999;
    12. }
    13.  
    14. int main()
    15. {
    16.     int x = 10;
    17.  
    18.     cout << "x = " << x << endl;
    19.     reference_to_x( x );
    20.     cout << "Operate on the actual x( x's address ) x = " << x << endl;
    21.  
    22.     do_a_copy_of_x_only( x );
    23.     cout << "Operate on the copy of x only so x = " << x << endl;
    24.  
    25.     return 0;
    26. }

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

    C++ Code:
    1. void order (float &x.float &y)

    Trong C++ nó cho khai báo kiểu này à??? Cái này mới à nha .

  4. #4
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Nice future.
    Phá toái hư không - Bạch nhật thăng thiên.

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

  1. Add Reference thì ko có 4 thư viện sau
    Gửi bởi kscntt_46 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 15-09-2015, 09:39 AM
  2. Các loại reference trong Java: strong reference, soft reference, weak reference, phantom reference và ứng dụng
    Gửi bởi SuperUser trong diễn đàn Tutorials và Thủ thuật lập trình Java
    Trả lời: 2
    Bài viết cuối: 02-10-2013, 04:41 PM
  3. Lập trình C++ Vấn đề với 'undefined reference to...'
    Gửi bởi Scifi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 11-04-2012, 12:52 AM
  4. Thắc mắc về value và reference
    Gửi bởi hieuuu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 06-11-2010, 10:58 AM
  5. Lỗi undefined reference to
    Gửi bởi lyland trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 08-12-2009, 05:22 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