해결된 질문
작성
·
101
답변 1
0
안녕하세요, 가장 오른쪽의 예시를 말씀하신 것으로 알고 답변 드립니다.
여기서의 핵심은 아래 for문이 아니라 위의 while입니다.
while은 반복문인데, 조건문이 참이 아닐 때까지 계속 반복합니다.
(참인 경우 아래 블럭으로 들어가고, 거짓인 경우에는 블럭을 수행하지 않습니다.)
지금 보면 while은 length라는 변수에 1씩을 계속 누적하고 있습니다.
(변수++
는 후위연산자로서, 값을 1 증가하면서 자기 자신에 그 값을 누적합니다.)
str[length] != '\0'
이라는 이야기는 str이라는 배열의 인덱스를 length 변수를 통해 하나씩 증가시키면서 접근하고 있을 때,
어느 순간에는 그 값이 '\0'
과 같아지는 순간이 온다는 얘기입니다.
지금 예제의 경우 문자 느낌표(!) 다음이겠죠.
'\0'
과 같아졌는데, "같지 않다?"를 물어봤으니까 false가 됩니다. == "같니?"를 물어봤을 때 true가 나와야 하니까요. (참고로 C언어에서 true, false는 1, 0을 리턴 합니다.)
그래서 그 순간까지의 변수 length
를 가지고 아래의 for문의 갯수를 정합니다.
그래서 아래에는 무조건 '\0'
이 되기 전까지만 반복하게 됩니다.
이해에 도움이 되셨을까요?