2016-07-20 1 views
-2

이것은 많은 논란의 여지가 있지만, C에서 *은 * (t ++)의 우선 순위가 + (후행 증가 연산자)가 *보다 큼을 의미합니다. 따라서 에서 while (* t ++ = * s ++); s에서 t로 복사하는 동안 첫 문자를 건너 뛰지 않습니다. 프레임을 더 잘 만들려면 증분 연산자 이전에 복사가 수행되며 이후에는 왜 수행됩니까?* t ++ = * s ++; 문자열 복사

+0

테스트 프로그램을 작성하고 직접 배울 수 있습니다 ... – John3136

답변

2

아니요, 첫 번째 문자는 건너 뛰지 않습니다. t++ (사후 증가)을 계산 한 결과는 증가가 발생하기 전에 t의 값이므로 포인터 역 참조는 t이 증가되기 전의 지시 된 위치로 이동합니다. 선행 증가 연산자 (++t)를 사용하여 t을 증가시키고 증분 후 값을 생성 할 수 있습니다.