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

vivamelancholia님의 프로필 이미지
vivamelancholia

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

C언어 배열과 문자열 강의 관련 질문

해결된 질문

작성

·

105

0

선생님, 안녕하세요!

C언어 배열과 문자열 강의 중에 포인터 사용 관련 예제 코드 관련해서 궁금한 것이 있어 글을 올립니다.

 

배열과 문자열 강의 8번 슬라이드(제목: 배열 끝! 이제 문자열을 배워보자)인데요,

오른쪽에 있는 '문자열 자체로 쓰기'의 예제 코드에서, 세 번째 줄에 *str로 포인터를 선언해놓고는 왜 네 번째 줄에서는 str로 불러오는지 잘 이해가 되지 않습니다.

str이 아니라 *str로 불러와야하는게 아닐까 싶어서 ㅠ 포인터가 진짜 쉽지가 않네요.

 

바쁘시겠지만 확인 한번 해주시면 너무나도 감사하겠습니다. 시험이 얼마 남지 않은 것 같은데 직장인이다보니 주말에 몰아서 달리는 중입니다. 많이 도와주세요 선생님 ㅠㅠ 편안한 주말 밤 되십시오!!

답변 2

1

주말코딩님의 프로필 이미지
주말코딩
지식공유자

#include <stdio.h>

int main() {
    char *str = "Hello, World!";
    printf("%s\n", str);
    return 0;
}

이 코드를 말씀하시는 것이 맞을까요?

 

저거는 %s로 전체 문자열을 출력하려면 주소를 줘야한다고 외우시면 됩니다.

*str로 입력하는 순간, "H"만 가리키게 됩니다. 그래서 %c로 출력하셔야 해요.

(배열은 특성상 배열이름으로 포인터에 넣은 경우, 배열의 가장 첫 번째 요소를 가리키므로)

 

 

#include <stdio.h>

int main() {
    char *greeting = "Hello, World!";
    printf("%c\n", *greeting);
    return 0;
}

이렇게 하면 "H"만 출력됩니다.

 

%s는 그냥 * 없이 전체 주소를 넘겨줘야 한다고 외웁시다 우리!

선생님, 명쾌한 설명 너무나도 감사드립니다!! 이해가 정말 잘 되네요. 복 많이 받으실거에요 ㅠ 남은 시간 동안 최선을 다해 달려보겠습니다!

주말코딩님의 프로필 이미지
주말코딩
지식공유자

화이팅입니다!!!

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요. 저도 거의 상시로 대기하면서 질문 답변하고 있습니다. 바로 확인해볼게요 잠시만요.

vivamelancholia님의 프로필 이미지
vivamelancholia

작성한 질문수

질문하기