inflearn logo
강의

Khóa học

Chia sẻ kiến thức

(2026 Mới nhất!) Đỗ thực hành Kỹ sư xử lý thông tin chỉ trong một tuần

Hàm và hàm đệ quy (v2)

21분 *str에 마이스트링이 들어가는 원리

Đã giải quyết

119

korea07074143

7 câu hỏi đã được viết

0

함수와 재귀합수v2 21분즈음에 *str에 mystring이 들어가는 원리가 이해가 안가요

python java c 정보처리기사

Câu trả lời 3

0

weekendcode

C언어에서는 문자열이라는 것이 사실 없습니다. 문자 하나하나가 메모리에 연속되어서 나열되어 있는 것입니다. 그래서 배열로도 선언할 수 있고, 문자열의 시작점을 포인터로 가리켜서 '\0'이 나올 때까지 출력할 수도 있는 것입니다.(%s)

 

지금 printString에서는 입력값의 파라미터를 str라는 문자열 포인터를 통해서 가리키겠다는 뜻입니다.

저 함수 안에서는 str이라는 단어는 이제 문자열을 가리키는 포인터가 됩니다.

그곳에 myString을 가리키라고 한 것입니다.

0

korea07074143

38분 재귀함수에서 prinft에서는 a와 sum 값만 필요한데 왜 res를 실행하는지 궁금합니다 a는 5고 sum은 nsum으로만 되어 있어서 res를 실행하는건가요?

0

weekendcode

하나 작은 값이 들어간 함수에서 리턴값을 받아와야하니까 그렇습니다.

예를 들어서 3으로 nSum을 넣으면

 

2 + nSum(2)을 구해야합니다. <-- 여기서 nSum(2)는 2가 들어간 것의 내용을 "리턴"합니다.

 

결국 하나 작은 값의 함수 리턴값을 받아야하는데, 그게 그 함수에서는 res입니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 이충규님.

C 언어에서 *str 에 myString 이 들어가는 원리는 포인터와 관련이 있습니다. 이 부분에서는 문자열을 처리하기 위한 포인터의 사용 방법을 이해하는 것이 중요합니다.

myString 은 문자열이고, 문자열은 기본적으로 배열이며, 배열의 이름은 해당 배열의 첫 번째 요소의 주소를 가리키는 포인터와 같은 역할을 합니다. 따라서 char *str = myString; 선언은 str 포인터 변수가 myString 배열 첫 번째 위치의 주소를 가리키게 만듭니다.

%s 형식 지정자는 이 포인터가 가리키는 주소부터 시작해 널('\0') 문자를 만날 때까지의 문자열을 모두 출력합니다. 따라서 printf("입력된 문자열: %s\n", str); 와 같이 사용할 때, str 은 myString 의 내용을 출력합니다. 별표(*)를 사용하는 이유는 포인터의 값을 참조하기 위함인데, "%s" 형식 지정자를 사용할 때는 문자열로 취급된다는 점을 기억하는 것이 중요합니다.

이와 유사한 질문과 더 많은 정보를 확인하기 위해 아래의 링크를 참고해 보세요:

이 링크들에서는 포인터가 문자열을 어떻게 취급하는지, 그리고 배열과 문자열의 관계에 대해 보다 자세히 설명하고 있어, 이해를 돕는 데 유용할 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

출력값 문의

0

9

1

25-2 분기커버리지

0

15

0

25-2 이론 재탕

0

22

1

25-1 이론 재탕

0

21

1

서브넷 마스크

0

29

1

모의고사 1회 계산문제 2개 맞았는데

0

46

2

업캐스팅 문제 예시 4번 부모 호출

0

43

1

모의고사 자료 해설이 너무 불친절하네요.

0

85

2

부모의 생성자 출력 관련

0

39

2

24-3 이론파트 재탕문제

0

45

0

누락코드

0

40

1

다차원 배열 포인터 질문있습니다

0

55

3

24-2 이론 파트 재탕

1

50

1

모의고사 5회

0

44

1

12분 10초 func(values, 0, 1)을 넣을 때

0

41

1

모의고사 1회 4번 문제와 관련한 질문이 있습니다.

0

45

2

23- 3 재탕문제

0

65

1

23- 1 재탕문제

0

51

0

파이썬 추가 코드

0

59

1

배열 포인터 출력 표시

0

55

2

포인터 증감 또는 값 증감

0

55

2

배열 포인터 함수 관련

0

53

2

실기 이론 통합 요약본 버전

0

68

2

업캐스팅 3번 문제 예시

0

65

2