Void intput(int a,int &b) void intput(int a,int b) khác gì nhau

void intput(int a,int &b)
void intput(int a,int b)

input chứ không phải intput.

Dòng 1 có tham chiếu, dòng 2 thì không có.

1 Like

tham chieu la sao ban giai thich ro giup minh duoc ko

lên google gõ : tham chiếu là gì là sẽ ra thôi . Mấy cái này là cái cơ bản nhất phải học trước khi viết code mà @@!

1 Like

Bạn cũng có thể chạy thử một chương trình để hiểu mà

#include <iostream>
using namespace std;

void intput(int &a, int &b)
{
    a = b;
    a++;
    cout<<"a = "<<a<<endl;
    cout<<"b = "<<b<<endl;
}

void intput2(int a, int b)
{
    a = b;
    a++;
    cout<<"a2 = "<<a<<endl;
    cout<<"b2 = "<<b<<endl;
}


int main()
{
    int a,b;
    cin>>a>>b;
    cout<<"a = "<<a<<" b = "<<b<<endl;
    cout<<"a va b sau khi vao ham intput 2 : "<<endl;
    intput2(a,b);
    cout<<"a va b sau khi vao ham intput 1: "<<endl;
    intput(a,b);
    cout<<"a va b sau khi da ra khoi ham"<<endl;
    cout<<"a = "<<a << " b = "<<b;
    return 0;
}

Cả hai prototype đưa ra đều không đúng vì đã gọi là hàm input thì phải sửa tham số (nếu không thì chính là đặt sai tên). Mà muốn sửa được thì tham số phải truyền tham chiếu (pass by reference -> có reference :smiley: ).

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?