mình có đoạn chương trình sau
#include <conio.h>
#include <stdio.h>
int thamTri ( int ); // khai bao prototype
int thamBien( int * );
int thamChieu( int & );
main ( )
{
int a;
thamTri(a);
thamBien(&a);
thamChieu(a);
getch();
}
int thamTri ( int a ) // dinh nghia ham
{
printf ("Nhap a \n");
scanf ("%d", &a); // nhap gia tri trong ham
printf ("In a = %d ", a ); // in gia tri trong ham
a -= 1; // thao tac tinh toan trong ham voi bien truyen vao
return (a); // tra ve gia tri trong ham
}
int thamBien( int *a)
{
printf ("Nhap a \n");
scanf ("%d", ....... ); // .... xét ở dưới
printf ("In a = %d ", *a );
*a=*a-1;
return (*a);
}
void thamChieu( int &a)
{
printf ("Nhap a \n");
scanf ("%d", &a);
printf ("In a = %d", a);
a -= 1;
return (a);
}
test trên 3 ide cfree 5, codeblock 13.12, dev c++ 5.10
hàm tham trị cả 3 chạy tốt
hàm tham biến thì hơi ngộ ngộ
xét scanf ở hàm tham biến
scanf ("%d", …);
… để a
thì cả 3 ide đều chạy tốt
… để &*a
dev c++ chạy tốt, codeblock lúc được lúc không, cfree chạy tốt
… để &a
dec c++ chạy lỗi, codeblock lúc được lúc không, cfree k chạy được
ở hàm tham chiếu
trên codeblock và cfree không lưu file code đó thì chạy được
nhưng lưu lại 1 phát rồi chạy thì báo lỗi
trên dev c++ thì chạy báo lỗi ( dev c++ lưu rồi mới được biên dịch)
vậy tóm lại là như thế nào?