C언어 포인터 ⑨ 배열포인터 VS 포인터배열 ▶

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

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

  • @리뇨리뇨
    @리뇨리뇨 3 года назад +1

    포인터 이해하는데는 선생님 강의가 최고네요 여러강의봤지만 완벽한 이해는 못했는데 선생님강의보니 포인터가 만만해보이기 시작했습니다

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  3 года назад

      멋진 표현이네요
      어느순간 포인터가 만만해 보인다
      응원합니다

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

    책으로만 공부하기엔 이해하기 어려운 부분이었는데 도움 많이 되었습니다. 좋은 강의 감사합니다

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  Год назад +1

      도움이 되셨다니 다행입니다.
      그림 그려가면서 즐겁게 공부해 가세요.

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

    이해될때까지 반복해서 학습하겠습니다.
    감사합니다.

  • @qpalzm2580
    @qpalzm2580 5 лет назад +1

    설명 친절하게 잘해주시네요
    이해가 정확하게 안됬던게 정리되가는 느낌입니다!

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  5 лет назад

      이해가 되신다니 기분이 좋습니다
      반복해서 보고 소화하면
      다른 언어 공부할 때도 많은 도움이 됩니다
      고맙습니다

  • @김수환-s8r
    @김수환-s8r 4 года назад +2

    컴공 대학생인데 교수님 수업보다 훨씬 좋은거 같아요 감사합니다

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  4 года назад

      김수환님. 여기 다들 어려워합니다.
      포인터 알면 공부가 재밌어요. 화이팅.

  • @박창현-h9k
    @박창현-h9k 6 лет назад +3

    솔직히 진짜 제가 여러개 찾아봤고 현재 윤성우의 열혈프로그래밍 책으로 혼자 독학중인데 정말 이해가 안 가는 부분은 양주종선생님의 인강을 듣고 있습니다. 원리를 깊숙히 파고들어서 외우는 코딩공부가아니라 원리를 공부하는 느낌이라고 해야되나 맘같아선 찾아가서 배우고싶네요

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  6 лет назад

      안녕하세요.
      도움이 되신다니 기분이 좋습니다.
      배운대로가 아니라,
      스스로 느낀대로 강의합니다.
      즐겁게 공부하세요.

    • @박창현-h9k
      @박창현-h9k 6 лет назад +1

      @@양주종의코딩스쿨 그런데 혹시 제가 지금 이해가 안가는게 이중 포인터 배열이 이해가 안가는데 어떤 강의를 들으면되나요 특히 이중 포인터 배열중에 문자열 관련된게 이해가 안갑니다

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  6 лет назад +1

      공개 동영상강좌에는 없는 내용입니다.
      char ch[5][10];
      char* s[5];
      이거 두 개 구분해서 혼동하지 않고 사용할 수 있으면
      초급은 넘어선것입니다.

    • @originalgm5947
      @originalgm5947 6 лет назад

      나도 윤성우의 열혈c프로그래밍 책으로 독학중인데 ㅋㅋㅋ

  • @huahua2933
    @huahua2933 6 лет назад +2

    간지럽고 애매한 부분을 잘 긁어주셔서 좋네요 감사합니다 ㅎ

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  5 лет назад

      고맙습니다 덕분에 하루를 즐겁게 시작합니다
      C언어 재밌습니다

  • @홀루룰-f3j
    @홀루룰-f3j 4 года назад +1

    햇갈리던게 어느 정도 이해가 됐네요. 결론은 포인터 배열은 배열안에 포인터의 주소를 저장하는거고 배열 포인터는 말 그대로 포인터 안에 배열을 저장하는 거군요

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  4 года назад

      네. 맞습니다.
      이거 정확히 이해하면
      포인터 자신감 가져도 됩니다.
      억지로 꽈놓은 이상한 문제는 건너뛰세요.

  • @bizomun8580
    @bizomun8580 4 года назад +1

    영상보다가 갑자기 느낀게 강의도 정말 잘 하시지만 영상찍으시는 분도 편하게 잘 찍으시는거 같아요. 가끔 강사님만 쫓아다닌다고 필기할거 다 잘라서 계속 뒤로가기 해서 필기해야하는 곳 많이 봤는데 강의 끝까지 다 듣고 잠시 멈춰서 필기해도 편하네요 참:) 강사님도 영상 촬영하신 분도 굳굳굳이네요ㅎㅎㅎ 감사합니다:)

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  4 года назад

      대본 없고, 마이크도 없이, 촬영은 왕초보
      이렇게 아무 준비없이 촬영한 겁니다.
      그래도 좋게 봐주시니 황공합니다.
      포인터 제대로 이해하면 두고두고 도움됩니다.
      응원합니다.

  • @김도현-q3p
    @김도현-q3p 4 года назад +1

    공부하다 우연히 봣는데 강의 되게 좋네요

  • @화염맨투맨
    @화염맨투맨 3 года назад +1

    감사합니다. 어느정도 감이 잡힌것 같아요 ㅎㅎ

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  3 года назад

      류현진선수 좋아합니다
      포인터 알수록 재밌습니다
      화이팅입니다

  • @yeagyujeong1566
    @yeagyujeong1566 6 лет назад +1

    좋은 강의 감사합니다~

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  6 лет назад

      yg님 고맙습니다.
      C언어가 재밌게 느껴졌으면 하는 바램이 있어요.
      yg님도 그 중 한 명이길 바랍니다.

  • @jlim3913
    @jlim3913 4 года назад

    11:33 ~에 배열들의 주소를 저장하는 포인터 즉 배열 포인터가' p'라는 말씀인거죠? 짚어주신건 ' int(*p) ' 로 짚어주셔서요.
    사실 포인터(변수)가 p라는건 아는데 왜 int(*p)[5] 이 자체가 배열포인터로 여겨지는걸까요 ㅠ ㅠ 1차원 배열 ' [5] ' 가 있어서 그렇게 느껴지는데 .. 배열포인터가 p인가요, int(*p)인가요 아니면 int(*p)[5] 인가요? 배열포인터의 정확한 표현식이 궁금합니다.
    (이와 같이 질문을 하는 이유는 포인터 첫 강의에서 포인터가 *p인지 int p인지 int*p인지 질문을 주셨을 때 표현식을 정확히 짚고 넘어가야한다는걸 깨달았습니다. 깨달음을 주셔서 감사합니다.)

  • @일회용계정-t4q
    @일회용계정-t4q 5 лет назад +1

    안녕하세요 양주종 선생님. 선생님의 포인터 강좌를 하나하나 듣다보니 예전에는 포인터를 그냥 주소로만 치부하고 넘겼고 설사 좀 찜찜하긴해도 뭐 포인터 많이쓰겠나.. 싶었는데 이해도 되는것 같고 그래서 좀 더 깊게 공부하고 싶어 선생님의 유료강좌를 들을 생각이 있습니다. 유료 강좌에선 어떻게 가르쳐주시나요?

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  5 лет назад

      일회용계정님 안녕하세요.
      컴퓨터는 포인터를 사용하지 않고 설계하기가
      거의 불가능합니다.
      자바, 파이썬 등 모두 주소를 사용하지만 건드리지 못하게 하죠.
      하지만, 포인터를 정확히 이해하면
      어떻게 저장되어 있는지 머리속에서 상상이 됩니다.
      선배들이 C언어 제대로 하란 이유가 다 있습니다.
      유료강좌는 아래 링크 따라가면 안내되어 있습니다.
      eduon.com/courses/lectureInfo/68
      고맙습니다.

  • @codeh334
    @codeh334 6 лет назад +1

    자동차 이야기 해서 레이싱 환청이 들리는 줄 알았어요 ㅋㅋㅋㅋㅋ
    좋은 강의 감사합니다.

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

    질문입니다^^
    int a[3][5];
    int(*p)[5] = a;
    하셨는데, 그럼 위에 [3][5]행렬에서 [3]행은 int(*p)[5] = a;에서 알수 가 없네요 .
    포인터 관점에서 봤을때, 몇 행인지 알 수 가 없네요???
    int a[3][5]; int a[5][5] 모두 int(*p)[5] = a; 표시되면 안 될 것 같은데요...

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  2 года назад

      안녕하세요.
      오랫만에 만나는 좋은 질문입니다.
      생각하신게 맞습니다.
      포인터와 배열의 차이점입니다.
      int a[5]; // int형 자료 5개 있다. 시작주소는 a
      int b;
      int k[10];
      int* p; // p는 int형 주소를 저장하겠다.
      p = a;
      p = &b;
      p = k;
      p = &a[1];
      모두 가능합니다.
      포인터 p입장에서는 시작 주소와
      바이트 정보는 있지만 개수 정보는 없습니다.
      배열은 시작 주소와
      바이트 정보와 개수 정보까지 있지요.
      1차원으로 설명했지만,
      2차원도 같은 개념입니다.
      int a[3][5]; // int[5] 3개 모음
      int a[5][5]; // int[5] 5개 모음
      int(*p)[5]; // int[5]까지 주소 저장하겠음
      int(*p)[5] = a; // 모두 가능합니다.
      p입장에서는 개수는 모릅니다.
      그러니 배열명으로 함수 호출 시 개수를
      반드시 알려주어야 합니다.
      포인터의 강력함과 위험한 상황이죠.
      이 부분 시간 내서 동영상으로 만들어 보겠습니다.
      그냥 단순히 설명할 내용은 아닙니다.
      이해 되셨길 바라고요.
      추가 질문 언제든 환영합니다.

  • @일회용계정-t4q
    @일회용계정-t4q 5 лет назад +2

    아 그리고
    p = 200;
    p +1= 220;
    p +2 = 240;
    이 안되는 이유가
    int (*p)[5] = a; 을 선언했고 그에 따라 p에 대한 +1 값은 int 의 바이트 수인 4씩 올라가니까 안되는 건가요? 잘 이해가 가질 않아서요.
    저 [5]가 분명히 가로에 대한 것으로 알고 있는데...그러면 p+1해버리면 204..208이렇게 나가는거 아닌가 해서요.

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  5 лет назад

      레벨이 다릅니다.
      포인터와 배열은 내부적으로 같습니다.
      컴퓨터는 int = 4, double = 8
      이렇게 인식하는 거죠.
      100번지 데이터 읽고 다음에 104번에 있는 데이터 읽을 것인지
      120번에 있는 데이터 읽어올 것인지 결정해야 합니다.
      이 주소 계산이 잘못되면 전혀 엉뚱한 데이터 가져올 수 있겠죠.
      int a[5];
      a+1 // 4 증가
      int a[3][5];
      a+1 // 20 증가
      int* p;
      p+1 // 4 증가
      int(*p)[5]
      p+1 // 20 증가
      이렇게 다릅니다.
      3차원이 되면 또 달라지겠지요.
      보통의 머리라면 눈으로만 말고,
      반드시 종이에 그려가면서 따져봐야 이해됩니다.
      천천히 그려보세요.

  • @한재광-j9z
    @한재광-j9z 3 года назад

    선생님 안녕하세요. 강의를 보다가 궁금한점이 생겨서 질문드립나다!!!
    6분쯤에, 포인터 p가 배열 b를 가리키는 형태가, 포인터 p가 이차원 배열의 각각의 한줄씩을 가리키는 것과 똑같은 형태이기 때문에,
    int* p = b; 와 같이 &를 사용하지 않고 int* p = a[0]; 을 사용할 수 있게 된 것인가요?
    그렇다면 만약 이차원 배열이 아니라 일차원 배열일 경우에는,
    각각의 줄이 한줄로 바뀌기 때문에, 즉 a[0~2]이 a로 바뀌기 때문에, int* p = a[0]; 을 쓰지 못하고 반드시 int* p = a; 로 바꾸어야 하게 되나요?
    좋은 강의 감사합니다. 이 영상을 통해 더욱 열심히 공부할게요!!! 건강하세요 선생님.

  • @so_o_m
    @so_o_m 5 лет назад +1

    안녕하세요 선생님 강의 잘 듣고 있습니다.
    다시 듣고 있는데 이해가 안 되는 부분이 있어서요
    int * p = a[2];가 안 된다고 설명하셨는데,
    그 뒤에
    p = 240;
    p + 1 = 244;
    를 말씀해주신 건 애초에 int * p = a[2];가 성립이 안 되기 때문에
    불가능한 예를 설명해주신 건가요?

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  5 лет назад +2

      박승희님 안녕하세요.
      6:13 경에
      int* p = a[2];
      이 부분이 가능하다고 설명했는데
      듣기에 따라서는 안된다고 들릴 수도 있겠네요.
      가능합니다.
      이유는
      int a[3][5];
      여기서 a는 2차원 배열이고,
      a[2]는 1차원 배열이기 때문이죠.
      int b[5];
      int a[3][5];
      level을 생각해 보세요.
      b == a[0]
      b == a[1]
      b == a[2]
      이게 같은 레벨이죠.
      b != a
      이렇게 b와 a는 서로 레벨이 다르죠.
      int* p = a
      이건 레벨이 맞지 않죠.
      int* p = a[0]
      int* p = b
      이건 가능하겠죠.
      천천히 그려보면서 따져 보시길 권합니다.
      눈으로 보고 이해 하려고 하면 시간이 더 걸립니다.
      즐겁게 공부하세요.

    • @so_o_m
      @so_o_m 5 лет назад +1

      @@양주종의코딩스쿨
      감사합니다!
      된다고 이야기 하셨다니 이해가 바로 되었습니다.
      정말 감사합니다ㅠㅠ
      선생님 덕에 C언어 이해를 좀 더 쉽고 재미있게 하고 있습니다!

  • @Ohjidms
    @Ohjidms 3 года назад +1

    레전드

  • @Y_-km6ro
    @Y_-km6ro 5 лет назад +1

    배열포인터 선언할 때 int(*p) [5] 말고 int[5]* p 이렇게도 되나요?

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  5 лет назад +1

      안됩니다. 에러입니다.
      컴파일러가 해석하지 못합니다.

    • @Y_-km6ro
      @Y_-km6ro 5 лет назад

      @@양주종의코딩스쿨 넵 감사합니다!

  • @gaepopodong
    @gaepopodong 3 года назад +1

    8:42초에 전화옵니다 여러분 즐기세요!

  • @한지석-z8i
    @한지석-z8i 4 года назад +1

    선생님, int(*p)[5] = a; 에서 sizeof(p)를 하면 20바이트가 나오는건가요?

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  4 года назад

      4가 나와야죠
      p는 포인터변수에요
      포인터변수는 자료형과 상관없이 4바이트다
      혼동되면 돌아가서 복습하세요

    • @한지석-z8i
      @한지석-z8i 4 года назад

      @@양주종의코딩스쿨 감사합니다. 이렇게 빨리 답변해주실 줄 상상도 못했습니다.

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

    아직 덧글 달아주시나요?!

  • @SK-pu3gg
    @SK-pu3gg 5 лет назад +2

    주변 소음이 조금 심해요

    • @양주종의코딩스쿨
      @양주종의코딩스쿨  5 лет назад +1

      별도 마이크 없이 녹음하여
      주변환경이 그대로 녹음되었습니다.
      백색소음으로 이해해 주세요.
      공부 즐겁게 하십시오.

    • @jlim3913
      @jlim3913 4 года назад

      @@양주종의코딩스쿨 ㅋㅋ 강의력만큼 유머감각도 좋으시네요

  • @wonwooson5893
    @wonwooson5893 3 года назад

    노이즈가..

  • @tv-om9gb
    @tv-om9gb 4 года назад +2

    ㅜㅜ 잡음만 좀 잡아주셨으면 ㅜㅜ