01/10/2018, 14:19

Tại sao truyền tham biến vào hàm trong C lại báo lỗi

#include <stdio.h>
#include <conio.h>
// khai bao prototype
void time(int &ig , int &ip);
// ham doi phut thanh gio:phut

void main(void)
{
int igio, iphut;
printf("Nhap vao so phut : ");
scanf("%d", &iphut);
time(igio, iphut);
printf("%02d:%02d
", igio, iphut);
getch();
}

void time(int &ig, int &ip)
{
ig = ip / 60;
ip %= 60;
}
// mấy bác cho em hỏi sao build nó báo lỗi
rogp10 viết 16:22 ngày 01/10/2018

void time(int &ig , int &ip);

Câu này của C++ mà (C làm gì có kiểu int&) chưa kể câu void main(void) nữa.

Chế Tiệp Chân Khoa viết 16:24 ngày 01/10/2018

Khi scanf bạn đưa vào địa chỉ tức là ủy nhiệm cho scanf sửa giá trị của biến. igio, iphut vẫn là int, sau đó bạn phải truyền địa chỉ &igio, &iphut vào hàm time (để ủy nhiệm hàm time sửa 2 biến igio, iphut):
Dòng 12 sửa thành:

time(igio, iphut)

Kiểu dữ liệu của địa chỉ int là con trỏ int.
Dòng 4 sửa thành:

void time(int* ig, int* ip)
Thi Nguyen viết 16:27 ngày 01/10/2018

Không dùng & được à bác… tại em thấy trong sách nó cho vd như vậy

Chế Tiệp Chân Khoa viết 16:19 ngày 01/10/2018

Mình ko biết, sách lỗi đầy rẫy, lên tutorialspoint mà đọc

明玉 viết 16:27 ngày 01/10/2018

Sách của bạn dạy C++ ba rọi, pha trộn C và C++ , và chắc chắn không đụng đến các tính năng mới của C++.

Bài liên quan
0