Mình có đoạn code như sau:
#include <iostream>
#include <string>
#define f(x) x-x
#define k(x) f(x)*f(x)
using namespace std;
void main()
{
cout << k(5);
system("pause");
}
Tại sao kết quả trả về không phải là 0 như mình nghĩ mà là -25?
Mình có đoạn code như sau:
#include <iostream>
#include <string>
#define f(x) x-x
#define k(x) f(x)*f(x)
using namespace std;
void main()
{
cout << k(5);
system("pause");
}
Tại sao kết quả trả về không phải là 0 như mình nghĩ mà là -25?
mình vừa mới thử rồi bạn, hình như vẫn là -25
vậy bạn giải thích giúp mình cái code gốc dc ko? tại sao lại là -25?? Cảm ơn
Bản chất chỉ là macro để thay thế
k(5) = f(5)*f(5) = 5-5*5-5 = 5-25-5=-25
Chỉ vậy thôi :))
Nếu có ngoặc vào thì:
k(5) = (f(5))*(f(5)) = (5-5)*(5-5) = 0 * 0 = 0
5-5*5-5 theo bạn là bao nhiu 
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?