01/10/2018, 15:49
Mong mọi người giải thích giúp em tại sao ar[*p++] = 3
int ar[] = { 10,15,4,25,3,-4 }, *p, i;
p = &ar[2];
Bài liên quan
int ar[] = { 10,15,4,25,3,-4 }, *p, i;
p = &ar[2];
Khi
m == 3, nếu ta gọin = m++;thìn == 3,m == 4p = &ar[2];⇨*p == ar[2] == 4ar[*p++] == ar[*p](vớipban đầu)== ar[4] == 3Nói thêm:
*p++chính là*(p++)nên sau khi gọi phép tính này,psẽ trỏ đếnar[3]hay*p == 25Giải ra từ từ:
0. p là
int*=> *p làint, ar làint*. Về kiểu thì ổn.p = ar + 2;Vậy *p là slot 2 bằng 4.*(ar + 4)là slot 4 bằng 3 rồi mới tăng p.Còn pre-increment thì phải +1 trước.
p == ar + 3.Cám ơn a đã bớt thời gian để giải thích giúp em. Rất chi tiết và dễ hiểu ạ.
Thêm nữa là ở dòng code cuối cùng của anh, giá trị *p là 25 đúng ko a.
cám ơn a đã bớt chút thời gian để giải đáp giúp em. Em đã hiểu, cám ơn anh và cộng đồng nhiều
e chạy code ra giá trị 25 chứ ko phải 5 anh ạ.