깨알 C언어 | 39. 함수에 주소전달 (1)

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 54

  • @정진영-y9m
    @정진영-y9m 6 месяцев назад

    ❤(5:35 ~ 9:09)

  • @user-fu2ec1rq8p
    @user-fu2ec1rq8p Год назад +1

    깨알 C언어 | 39. 함수에 주소전달 (1)
    주소 전달? 포인터를 전달하는 것,
    call by value? 함수를 호출할 때, 값만 호출하겠다,
    call by reference? 주소값, 객체, 오브젝트, 배열을 전달하겠다,
    문. 1:22
    *i? 100
    *100? 10
    증감식이 우선순이 제일 높다,
    답. 5:29

  • @나나-u5j
    @나나-u5j 5 месяцев назад

    2:30 *i가 주소값을 가져와서 100인데 *i+=5; 에서 *i는 왜 바로 값을 가져오나요??

  • @dreamiken
    @dreamiken 3 месяца назад

    안녕하세요! 컴응애입니다! 7:50에 나를 호출한 이 공간으로 51를 return을 시킨다고 하셨는데 어디서 나를 호출했는지 어떻게 아나요? 어떤 강의 들으면 나와 있는지 RUclips link 첨부해 주셔도 감사하겠습니다. 항상 감사 드립니다.

  • @minnyeongson4317
    @minnyeongson4317 Год назад +1

    포인터 변수를 선언할때 *i 라고 지칭하는데, 이는 단순히 포인터 변수임을 지칭하기 위해 하는것일까요? *i+=5일때는 i가 가리키는 값을 의미해서 이 부분이 헷갈립니다

    • @HeungSsaem
      @HeungSsaem  Год назад +2

      안녕하세요~~~
      포인터 변수를 선언할때 일반변수와 다르게 사용하기 위해서 *i 의 형태를 가지게 됩니다.
      그 이후에 사용되는 *i 의 의미는 i 에 있는 주소값이 가리키는 공간의 값이다 라고 생각하시면 됩니다.
      i 에는 주소값이 들어가 있게 됩니다.
      감사합니다. ^^

    • @minnyeongson4317
      @minnyeongson4317 Год назад

      @@HeungSsaem 답변 감사합니다!!

  • @gavynj1109
    @gavynj1109 2 года назад +8

    50만원씩 돈내고 듣는 컴일강의 듣다가, 혼자 설명하고 혼자 진도 넘어가는 강사때문에 속터져서 유튭뒤지고잇엇는데
    이분이 훠어얼씬 낫습니다..! c언어 때문에 막막햇는데 정말 너무너무 높은퀄리티와 이해도를 다갖춘 강의입니다
    전산직 준비중인데 이분껄로 준비해보렵니다..!

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      좋은 댓글 남겨주셔서 너무 감사합니다.
      4월에 전산직 시험이 있지요??
      얼마 남지 않은 시간 열심히 하셔서 꼭 합격하길 바라겠습니다.
      감사합니다. ^^

    • @gavynj1109
      @gavynj1109 2 года назад +1

      @@HeungSsaem 네 그런데 정말 c언어랑 자바때문에 몇개월 손놓고잇엇어요.. 선생님꺼듣고 다시 맘먹고 준비해서 6월 지방직 도전하려고 합니다!

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      @@gavynj1109 아...지방직 준비하시는군요..6월이라면 자바 강의 추가되는게 또 있을꺼에요..
      지금은 정보처리 실기 진행해야해서 안되는데, 6월이면 자바랑, SQL문도 진행할 예정이니 그것도 들어주세요~~^^

    • @gavynj1109
      @gavynj1109 2 года назад

      @@HeungSsaem 네네 컴일은 선생님 유튭강의로도 공부는 충분하겠죵?

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      @@gavynj1109 컴일까진 아니고 ㅜㅜ
      씨언어와 자바는 공무원 문제 기준으로 만든거라서 이정도면 충분하실꺼에요. ^^

  • @nicenicely9978
    @nicenicely9978 Год назад +1

    선생님 다행히 값은 어렵지 않게 구했어요! 그런데 51뒤에 띄우고 15쓰는건 "%d " 여기에 스페이스바가 한번 있어서 그런 걸까요? 만약 없이 문제가 나왔다면 5115 21 이게 답일까요?
    아 전에 알려주신 IDEone에서 해보니 맞네요 ㅎㅎ 많은것들 알려주셔서 감사합니다

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      스페이스가 바가 없다면 5115 21 이런식으로 써주시면 됩니다.
      근데 스페이스바는 채점하기가 곤란해서 콤마나 그런것들이 출제가 될꺼에요~~
      감사합니다. ^^

    • @nicenicely9978
      @nicenicely9978 Год назад

      @@HeungSsaem 감사합니다^^

  • @안공단
    @안공단 Год назад

    선생님 주소값을 참조해서 변경해라는 명령은 어디서 받나요??
    return은 그뒤쪽에 있는데///
    그리고++j는 y의 값을 변경시켜주지 않는것도 궁금하구요...
    귀찬게해서 죄송합니다.^^

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      주소값을 참조하라는건 f 함수를 호출할때 주소값을 전달했기 때문입니다. ^^
      보면, f( &x, y );
      이런 형태로 되어 있습니다.
      x 라는 변수에 10이 들어가 있고, x 변수가 메모리의 100번지에 있다고 가정했을때, &x 가 의미하는건 x의 값인 10을 넘기는게 아니라 100번지를 넘기게 됩니다.
      그리고 ++j 는 f 함수에서 만들어진 지역변수가 됩니다.
      앞에서 y 의 20을 넘기는건 값만 복사해서 새로운 지역변수 j 를 만들어서 전달을 한것이지, y 의 주소를 변경하거나 하진 않습니다.
      요거에 관련한 설명은,
      ruclips.net/video/ilzrAhRJ3BQ/видео.html
      이 부분을 먼저 한번 봐주세요~~
      그리고,
      ruclips.net/video/u_tqrzwotgs/видео.html
      이 영상을 한번 더 보시면 이해가 가실꺼에요~~
      혹시라도 이해가 안가시면 다시 질문 남겨주세요~~
      감사합니다. ^^

  • @김달팽-r4n
    @김달팽-r4n 2 года назад +2

    흥달샘을 알기전엔 그냥 눈으로 뚫어져라 보면서 이게 뭔말이냐? 라고 생각했는데
    잘 모르겠으면 일단 그림을 그려보게되었습니다. 덕분에 예전보다 더 쉽게 풀리네요~

    • @HeungSsaem
      @HeungSsaem  2 года назад

      안녕하세요~~
      시험에서는 빨리 풀고, 눈으로 푸는게 중요한게 아니라 정확한 답을 찾아내는게 중요하기 때문에 실수를 줄이기 위해서 그림을 꼭 그려주셔야해요..
      합격을 진심으로 응원하고 있겠습니다. ^^

  • @장군-d7t
    @장군-d7t Год назад +1

    실기강의 들으며 틈틈이 깨알 강의 들으니 그림만 그려도 절반은 이해가가네요. 그려가며 푸니 이해도 잘되고 감사합니다.

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      그림만 잘 그리면 어려운 문제도 풀 수 있을꺼에요.
      실제 개발할때도 모델링을 수행하잖아요~~
      이런 시험에 나오는 문제들은 꼭 그림을 그려서 푸는 연습을 해주세요~~
      즐거운 주말 되세요~~^^

  • @김광식-z5l
    @김광식-z5l Год назад

    안녕하세요 출력할때 51 10 20 이나와서 조금 생각해보다가 헷갈려서 질문드립니다
    콜바이어드레스는 함수가 종료되는시점이랑 상관없이 주소를통해서
    본인의값이 바뀌기떄문에 메인의 x 본인의 값이 바뀐다고 생각하면될까요?

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      Call by address 는 함수의 종료와는 상관없이 해당 주소의 값이 바뀐 형태가 됩니다.
      x는 해당 변수의 주소값을 넘겼고,
      *i += 5;
      이 문장에서 기존 x 변수에 있던 10에 5를 더해서 15가 되게 됩니다.
      감사합니다. ^^

  • @성호-o9i
    @성호-o9i 2 года назад

    정보처리기사 이번 3월에 보는데 강의 참고 하겠습니다. 강의 자료는 없나요? 무료 강의해 주셔서 감사합니다.

    • @HeungSsaem
      @HeungSsaem  2 года назад

      강의 교안이 없는 점 양해 부탁드릴께요 ㅜㅜ.

  • @chafle-___-
    @chafle-___- 2 года назад

    선생님.... 댓글 보다가 궁금해졌는데 여태 저도 ₩n이 줄 띄우기 인줄 알았는데요.. 그럼 %d뒤에 붙은 ₩n이 의미 하는 게 무엇이죠...??? (전에 배웠는데 까먹은건가...?하핫 죄송ㅎㅎ;;;;)
    질문자들도 저처럼 ₩n 때문에 엔터를 친 것이 답이 아닌지 질문 하는 것 같습니다..

    • @chafle-___-
      @chafle-___- 2 года назад +1

      아 다음 강의 듣고 다시 왔는데요 선생님 정확하게 ₩n이 줄 띄움은 맞는데 두 번째 printf 연산 뒤에 붙어있어서
      51,15 20
      (커서 껌뻑껌뻑)
      이렇게 답이 되는 건가요????????????????

    • @HeungSsaem
      @HeungSsaem  2 года назад +2

      넵...한줄 엔터 쳤다고 보시면 됩니다~~
      보통 커서까진 답으로 표시하진 않으니 51, 15, 20 이후에 또다른 출력문이 있으면
      엔터 치고 답안을 표기해주시면 됩니다~
      감사합니다.

  • @바타민
    @바타민 2 года назад

    오른쪽 함수에서 int j에 대한 변화가 일어나는 식이 있었다면 (값이 40으로 바뀌거나 하는..) 이건 주솟값 참조가 아니니 메인함수로 돌아와서 프린트출력할때 그냥 20으로 출력되나요 ??

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      안녕하세요..
      j는 Call By Value 이기 때문에 값을 복사해서 넘기고, 호출한 곳에는 영향을 미치지 않습니다.
      그래서 제어권이 넘어오게 되면 기존 값은 그대로 입니다.
      감사합니다. ^^

  • @ofcoupswhynot1982
    @ofcoupswhynot1982 2 года назад +1

    함수가 끝나고 나면 리턴하는 값을 제외하면 다 소멸한다고 하셨는데 마지막에 *i+=5는 왜 x에 반영되어있나요? 끝까지 듣고 보니 주소값 호출하면 바뀐 채로 남아있는 걸까요? 강의 너무 감사하게 잘 듣고 있습니다🤗

    • @HeungSsaem
      @HeungSsaem  2 года назад +8

      안녕하세요~~~
      *i += 5;
      이건 주소값을 참조해서 그 메모리 영역에 있는걸 바로 바꿔버립니다.
      인자를 넘길때, x 의 주소값을 넘기잖아요..
      그리고 함수에서 x의 주소값에다가 값을 대입해버리고,
      x는 main 에서는 아직 살아있는 변수이기 때문에 x 에 반영이 되어 있습니다.
      도움이 되셨음 좋겠습니다. ^^

  • @uuukkk1230
    @uuukkk1230 Год назад

    질문이 있습니다. 함수 호출에서 return을 하고나면 해당 지역변수에 쓰인 부분이 메모리에서 사라진다고 하셨는데요. *i+=5 15 값이 수행될때 return 하기전에 x로 값이 main으로 전달되고 나서 수행되는 부분인지 헷갈립니다. 아니면 return 할때 *i의 값 15랑 * + ++연산한 값이랑 같이 return을 하는 건가요?

    • @HeungSsaem
      @HeungSsaem  Год назад +2

      안녕하세요~~~
      *i+=5;
      이 명령을 수행하면 바로 x 의 값이 변경이 되게 되고,
      return 에서는 나를 호출한 그 위치로 연산된 값이 전달이 되는 형태입니다.
      순차적으로 처리된다고 생각해주시면 됩니다.
      감사합니다. ^^

  • @왕눈이-o6w
    @왕눈이-o6w 2 года назад

    안녕하세요. 한국방송통신대 컴퓨터과학과에 편입학 하게되었습니다.
    수강과목을 선택해야 하는데 정보처리기사 합격을 위해 필요한 과목으로
    C프로그래밍과 Visual C++프로그래밍 중 어떤 과목을 수강하는게 좋을 지 몰라 문의 드립니다.
    두 과목중 어떤 과목을 선택해야 할까요?

    • @HeungSsaem
      @HeungSsaem  2 года назад

      C언어 강의는 인터넷에도 많고, 공부할 방법이 너무너무 많이 있습니다.
      무료 강의도 많이 배포가 되어 있고요..
      수강시작하기 전에 3월전이 되겠지요..그때 C언어 좀 공부하시면 되고, 수강은 Visual C++ 을 해주시는게 좋을 듯 합니다. ^^

  • @까믈리에
    @까믈리에 Год назад

    감사합니다 흥달쌤 !

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      수강해주셔서 감사합니다. ^^

  • @사회생활-k6s
    @사회생활-k6s 2 года назад

    흥달쌤님~! f함수가 끝나고 x값이 계속 15로 유지 되는 이유가 함수로 주소값을 전달해서 그렇다고 하셨잖아요~그럼 위에서 f(*x,y) 말고 f(x,y) 로 인자 값을 받아서 만약 x값이 15로 바뀌게 된다면 f함수가 끝난뒤에도 x값이 15로 계속 유지되나요?

    • @HeungSsaem
      @HeungSsaem  2 года назад +3

      안녕하세요~~~
      결론은 아니요~~^^
      그냥 값만 전달하게 되면 그냥 f 함수에서 이리저리 처리한다음에 모든게 사라지게 됩니다.
      그러니깐 그 값들이 어딘가에 유지가 될수 없습니다.
      감사합니다. ^^

  • @그냥저냥-o2p
    @그냥저냥-o2p 2 года назад +1

    수강~ ^^ 시험 얼마 안 남았네요.

    • @HeungSsaem
      @HeungSsaem  2 года назад

      어제도 열공하셨군요..
      얼마 남지 않은 시험 조금만 힘내주세요..^^

  • @운린이의운동일지
    @운린이의운동일지 2 года назад

    선생님 그러면 결과가 51 이렇게 적어야 되는건가요?? 밑에 printf 뒤에 역슬레쉬 n있어서
    15 20

    • @HeungSsaem
      @HeungSsaem  2 года назад +2

      아니요~~
      첫번째 출력문에서는 51을 출력하고, 개행이나 탭이나 이런 출력관련된 문자가 없기 때문에,
      51 출력하고 커서가 껌뻑껌뻑하게 됩니다.
      그리고 그 다음 출력문에서 15 20 을 출력하게 되니깐..
      한줄에 쭉 출력이 됩니다~~
      그 다음에 개행이 일어나게 됩니다.
      만약 51
      15 20 이렇게 하려면
      printf("51
      ");
      printf("15 20
      ");
      이런식으로 해주셔야 합니다.
      도움이 되셨으면 좋겠습니다. ^^

  • @hasangyong260
    @hasangyong260 2 года назад +2

    쌤. 질문 있어요.
    출력값에 51 15 20 이라고 하셨는데.
    프린트에프 ;
    프린트에프;
    이니까 .
    역슬래시 n이 없어도
    51
    15 20
    어닌가해서요??
    항상 좋은 강의 감사드립니다~^^

    • @HeungSsaem
      @HeungSsaem  2 года назад +3

      앗 아닙니다. 명시적으로 개행 문자가 들어가야 엔터가 처리됩니다.
      셤장에서 이런거 실수 하시면 안되요~~
      감사합니다. ^^

  • @기럭공지
    @기럭공지 2 года назад

    감사합니다

    • @HeungSsaem
      @HeungSsaem  2 года назад

      시청해 주셔서 감사드립니다.

  • @akaps99
    @akaps99 2 года назад +1

    감사합니다 👍👍

    • @HeungSsaem
      @HeungSsaem  2 года назад

      수강해주셔서 감사합니다 ^^

  • @김영주-x5m8m
    @김영주-x5m8m 2 года назад

    감사합니다 ~!

    • @HeungSsaem
      @HeungSsaem  2 года назад

      어려운 내용에 들어오셨네요..^^
      오늘 하루도 즐거운 하루 되세요~~^^