Một trong những người bạn của tôi đã cho tôi xem chương trình này và hỏi tôi tại sao lại là i
biến tăng gấp đôi.Tại sao biến "i" lại tăng dần hai lần trong chương trình của tôi?
Theo hiểu biết của tôi MAX(i++, ++j);
trong dòng này i
là lần đầu tiên gửi như một tham số và sau đó tăng lên, vì vậy nếu các giá trị ban đầu của i
là 10
thì giá trị tăng lên nên 11
, nhưng nó cho thấy giá trị tăng lên của i
như 12
.
Chương trình:
#include<stdio.h>
#define MAX(x,y) (x)>(y)?(x):(y)
void main(void)
{
int i = 10;
int j = 5;
int k = 0;
k = MAX(i++, ++j);
printf("%d %d %d",i,j,k);
}
Output:
một người nào đó có thể vui lòng giải thích cho tôi như thế nào là giá trị tăng lên đến 12?
Cảm ơn.
Cũng nên nhớ rằng 'main' nên trả về một 'int'! – peoro
Chắc chắn, đây phải là bản sao của một số câu hỏi trước đó? –
@larsmans Có thể tôi và tôi thậm chí không biết chính xác tìm kiếm loại vấn đề này. – Searock