해결된 질문
작성
·
114
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
선생님, 명쾌한 설명 너무나도 감사드립니다!! 이해가 정말 잘 되네요. 복 많이 받으실거에요 ㅠ 남은 시간 동안 최선을 다해 달려보겠습니다!