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 == 4
p = &ar[2];
⇨*p == ar[2] == 4
ar[*p++] == ar[*p]
(vớip
ban đầu)== ar[4] == 3
Nói thêm:
*p++
chính là*(p++)
nên sau khi gọi phép tính này,p
sẽ trỏ đếnar[3]
hay*p == 25
Giả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 ạ.