인프런 커뮤니티 질문&답변

정지훈님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C++

6.9 포인터 연산과 배열 인덱싱

안녕하세요 교수님

작성

·

135

1

영상에서 말씀하셨던

for문 대신 while문으로 jack jack을 한번 출력해보라고 하셔서

include

using namespace std;

int main()

{

char name[] = "Jack jack";

const int n_name = sizeof(name) / sizeof(name[0]);

char *ptr = name;

int i = 0;

while(1)

{

if(i < 9)

{

cout << *(ptr + i) << endl;

++i;

}

else

break;

}

이런식으로 작동시켜보았습니다.

그런데 하면서 궁금한점이

if조건 안에 ((ptr + i) < 9) 이런식으로 조건을 넣으려고 했더니

char 타입과 int 타입이라 ptr + i 이런 조건을 줄 수 가 없어 작동이 안되더라구요.

다른 방법은 없는지 궁금합니다.

답변 2

1

저도 while문을 참으로 걸어놓고 if 넣으려고 했었는데 뭔가 쓸데없이 길어지는거 같더라고요 바로 while문 안에 조건을 넣어서 해보았습니다.

'''

include

int main()

{

using namespace std;

char name[] = "Jack Jack";

char *ptr = name;

while (*ptr != '\0')

{

cout << *ptr++;

}

return 0;

}

'''

0

홍정모님의 프로필 이미지
홍정모
지식공유자

새로운 시도를 해보셨군요. 말도 안되는 것 같은 것들도 다양하게 해보시면 재미있으실겁니다. 왜 그렇게 하셨는지 정확한 의도는 잘 모르겠지만 While 다음 괄호 안에 조건을 넣을 수 있습니다.