최근 나는 C와 포인터를 배웠습니다.후행 증가 포인터가있는 문자 복사
스티븐 고칸 (Stephen G. Kochan)의 C 프로그래밍 (Programming in C)에서 나는 그것을 완전히 이해하는 데 어려움이있는 모범을 만났습니다.
포인터를 사용하여 문자열to
에 문자열
from
을 복사하려면 예를 나타냅니다 :
나의 이해에서
void copyString (char *to, char *from) {
while (*from)
*to++ = *from++;
*to = '\0';
}
이 *from++
이 *from
의 후행 증가이다; 따라서 *to++
의 값은 *from
이어야합니다.
`*from` is in the position 1.
`*from++` is in position 2
`*to++` in position 2,
그러나 경우 예를 들어
이 :*from++ = *to++
이
*to
위치 1이 아닌 2
으로 *from
의 값을 반환해야 컴파일러는이 위치 2 말했습니다,이 책은 또한 위치 2 말했습니다.
나는 조금 혼란스러워. 이 사건에 대해 실현 가능한 설명이 있습니까?
이는 다음과 같습니다.'* to = * from; ~ ++; ++에서 .- 끔찍한가요? –
K & R 방법은 더 짧습니다. 'while (* to ++ = * from ++) {;}' – wildplasser