Ở đây không có gì khó hiểu cả:Code:{ while (*s2++ = *s1++); }
Đầu tiên: Ta phải hiểu chuổi là một mảng các phần tử kiểu char và được kết thúc bằng số 0.
còn vòng while như mình đã đề cập đến trong các kiến thức cơ bản của c.
http://forums.congdongcviet.com/showthread.php?t=409
Cụ thể ở đây mình nhắc lại.
Thực hịên Các lệnh S đến khi mệnh đề A sai hay A là một giá trị bằng 0.Code:while(A) { S; }
Cụ thể ví dụ cân lệnh gán *s1=*s2 sau đó s1,và a2 tiếp tục trỏ đến phần tiếp theo của mảng đến khi *s2=0 và được gán cho *s1 rồi thóat khỏi vòng while.
À Nếu câu lệnh A=B thì sau câu lệnh một giá trị sẽ đựơc trả về giá trị đó nằm bên trái dấu bằng tức A. Chính vì lý do đó mà ta luôn viết được A=B=C.Do đó *s1++=*s2++ luôn có gía trị trả về là *s1 nếu giá trị này bằng 0 tức chuổi s2 hết và sẽ thóat vòng while.