반복문 설명좀요 ㅠㅠ
꼼지
2023.04.01
void main(void)
{
char ch[]=Clanguage;
char *pch;
for(pch=ch;pchch+10;pch++)
printf(%s\n,pch);
}//clanguage
language
anguage
....
점점 줄어나가는데 왜이렇게 돌아가는지 모르겠습니다 ㅠㅠ 설명좀 부탁드려요...ㅠㅠ
-
월식
일단
char *pch 에 의미는 아시죠? 캐릭터형 포인터 즉, 문자에 주소값을 저장하겠다는거잖아요
그런데 for문에서 초기값에다가 pch=ch라고 썼으니깐 pch는 ch배열에 첫번째주소값을 저장하겠다는뜻입니다
그러니깐 문자 \C\ 가 들어있는 주소값이죠...
그거를 반복문으로 돌리면서
문자열을 출력하는건데
한번출력하고나서
pch++ 를 하니깐
즉, pch가 다음 배열에 주소값으로 증가한다는거죠 처음에 \C\문자가 있는 주소값에서
그 다음 -
소예
pch=ch - Clanguage 문자열의 시작 주소를 받아옵니다.
pch++ 할때 마다 시작 위치가 한칸씩 뒤로 이동 하겠죠?? 그래서 출력 되는게 한칸씩 짤립니다.