C언어 포인터배열 | 1차원 배열과 포인터 | 2차원 배열과 포인터

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

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

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

    00:00 오프닝
    00:21 포인터 배열
    05:38 일차원 배열과 포인터
    13:50 2차원 배열과 포인터
    ➡️ 소스코드 : cafe.naver.com/honeyc/46309

  • @roadtoblue7314
    @roadtoblue7314 Год назад +3

    C언어 중에 제일 어려운 내용 중 하나라고 생각했는데, 한번에 정리해서 설명해주시니까 정리가 좀 되는 느낌이네요.
    헷갈릴 때 마다 계속 보다보면 더 확실하게 알게 될 거 같아요.
    정리해주셔서 감사합니다 ~

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

      한번 싹~정리하기 전까지는 두고두고 헷갈리는 부분입니다ㅠ
      시간을 갖고 정리하면 좋을 거 같아요😊

  • @hobis0b
    @hobis0b 4 месяца назад +2

    미녀교수님 좋은강의 감사합니다

  • @stellaaha-lo7yf
    @stellaaha-lo7yf Год назад +4

    쌤이 설명 지존이십니다👍👍👍👍👍

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

      악!!!ㅋㅋㅋㅋㅋㅋ 감사합니다🙏

  • @해나-z4y
    @해나-z4y 3 месяца назад +1

    너무 잘 가르쳐 주셔서 이해가 되네요! 정말 감사드려요~!!!

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

      이해 잘되신다니 저도 너무 좋네용~😊

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

    정말 잘 가르치세요 감사합니다.

  • @킴키-o1y
    @킴키-o1y 11 месяцев назад +1

    감사합니다 ~

    • @킴키-o1y
      @킴키-o1y 10 месяцев назад

      int *p [3] ; 포인터 배열. 24 byte
      int (*p) [3] ; 3개의 열을 가진 2차원배열을 가리키는 포인터. ( p는 int형의 데이터를 3개씩 점프). 8 byte

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

    우왕, 3개월전에 시청했을땐 이해 못 해서 버벅거렸는데 다시 보니 이해됐어요! 명강의 정말 감사해요!!

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

      와우👍👍👍 3개월동안 빌드업 된건가요??? 축하드려용😊

  • @원다골
    @원다골 Год назад +1

    머리에 쏙쏙 들어오네요. 감사합니다.

  • @권재현-n1j
    @권재현-n1j Год назад +2

    설명 엄청 잘하시네요!! 좋은 영상 감사합니다^^

  • @준쓰-z8x
    @준쓰-z8x Год назад +2

    저는 이제 c++로 코딩에 코짜도 모르는 상태로 게임프로그래밍 시작한 지 한 달 안되는 사람입니다.
    학원에서 배운 내용 선생님 강의로 복습하는데 평소에 댓글 잘 안 쓰는데 정말 이해가 잘 됩니다.
    감사합니다.
    C++ 클래스 강의도 해주셨으면 좋겠어요.

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

      넵!!! 중간 중간에 C++ 강좌 해볼께요!!
      감사합니다🙏

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

    빌어먹을 포인터배열, 배열포인터때문에 정신이 혼미해져서 포기마려웠는데 드디어 알겠습니다... 후우

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

      이해가 되셨다니 제가 다 기쁘네요😊

  • @Hyun-w2v
    @Hyun-w2v Год назад +1

    선생님 더 알차지면 안되요!! 지금너 정말 알차요!!😂😂

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

      흫흐흐흫 넘 감사해용🥹

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

    오카슈님과 거의 쌍벽을 이루는 귀르가즘 유발자.
    무슨 말인지 통 모릅니다만, 목소리 듣고 싶어서 그냥 켜놓습니다.
    ㅋㅋㅋ

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

      ㅋㅋㅋㅋㅋㅋㅋㅋ 아 ㅋㅋㅋㅋㅋㅋ

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

      @@withhoneyc 목소리가 참 좋으십니다.
      목소리를 적극 활용한 컨텐츠를 추구하시면 프로그래밍 강의 관련 영상보다 조회수가 훨씬 많이 나올거라고 확신합니다.
      그리고, 한글로 검색되는 단어가 '현이' 인데 친절한 현이씨라는 69금 내용 채널이 있습니다. 채널 이름을 바꾸시는 것이 어떨지...

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

    ㅋㅋㅋ 마지막에 웃으실 때 억쑤로 귀여웠어요.
    그래서 따라서 웃어 봤어요.., 음흐흐흐~~ ㅋㅋㅋㅋ
    쌤을 마이 좋아합니다. ㅋ
    카톡 친구 연결하고 싶어요.
    지난 주에는 헤깔리던거 3가지를 쌤 설명 한방에., 깔끔하게 정리가 되어서, 엄청 편해졌어요.
    이쁜 쌤~~ 땡쓰~~~ ㅋ

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

      마지막까지 다 보셨나봐요!! 정말 훌륭하시네요👍

  • @martindavid5586
    @martindavid5586 8 месяцев назад

    선생님 28:15에서 왜 8바이트인지 모르겠습니다. 인트는 4바이트이니까 3열마다 반복이면 4곱하기3 해서 12바이트 아닐까요?

    • @withhoneyc
      @withhoneyc  8 месяцев назад +1

      포인터를 말씀하시는걸까요? 포인터는 64비트 시스템에서 8바이트가 맞습니다.

    • @martindavid5586
      @martindavid5586 8 месяцев назад

      @@withhoneyc 네 선생님. 포인터 부분이요.
      아하 2열이든 3열이든 15열이든 int는 8바이트에 해당인걸까요?
      64비트에서 8바이트이고 32비트에서 4바이트라고 보면 되는건지 궁금해요.
      저는 열이 늘어나면 늘어난만큼 int가 4바이트이니까 4x3열해서 12바이트인거 아닌가 해서요

    • @withhoneyc
      @withhoneyc  8 месяцев назад

      @@martindavid5586 포인터의 크기는 같은 시스템에서 같습니다. 2열이든 3열이든 시작 주소값만을 저장하기 때문입니다.

    • @martindavid5586
      @martindavid5586 8 месяцев назад +1

      @@withhoneyc 아하 그런 원리였군요!
      선생님 알려주셔서 감사합니다. 포인터 어려웠는데 책도보고 다른 유튜브영상도 봤는데 이해가 안갔어요. 선생님 영상보고 포인터 개념에 대해 이해가 가고있어요.
      이렇게 명품 강의를 유튜브로 알려주셔서 대단히 감사드려요. 선생님 오늘도 즐거운 하루 되세용 ^_^

  • @황재진-c3o
    @황재진-c3o 11 месяцев назад

    영상보고 의문이 생겨서 댓글 남깁니다.
    26:23 쯤에 int (*p)[100]이어도 8byte 라고 하셨는데
    int형의 변수를 100개씩 점프하는 포인터면
    int형은 4byte의 데이터를 저장하므로 4*100 = 400byte가 맞다고 생각합니다.
    혹시 제가 이해한게 맞는지 확인하고 싶어서 한 번 확인해주시면 감사하겠습니다!
    #include
    int main(void) {

    int arr[3][2] = { {1,2}, {3,4}, {5,6} }; //그냥 임의로 초기화한 배열
    int(*pa)[100] = arr;

    printf("%d
    ", sizeof(*pa));
    return 0;
    }

    • @withhoneyc
      @withhoneyc  11 месяцев назад

      int *p[100]; 은 포인터 배열로 64비트 시스템에서 8바이트 포인터변수 100개이므로 800바이트 입니다.
      반면, int (*p)[100];는 포인터 변수로 8바이트 입니다.

    • @jaehongkim1231
      @jaehongkim1231 6 месяцев назад

      반복되는 질문이시군요. 이번 30강은 3챕터(1. 포인터배열, 2. 1차원배열의 포인터, 3. 2차원배열의 포인터)인데
      1. 포인터배열은 배열이고. . . 나머지 2. 1차원배열의 포인터, 3. 2차원배열의 포인터은 둘다 포인터입니다.
      챕터1에서 배열은 변수가 아니라 상수입니다. 즉, a는 첫번째주소만 나타내는 기호상수일 뿐입니다.
      챕터2, 3에서 포인터는 변수입니다. 주소를 저장하며 그 주소값을 바꿀수 있는 변수로 8바이트가 할당됩니다. 즉, 100차원배열이라도 8바이트만 할당된 변수입니다.

  • @DavidLee-gz8sn
    @DavidLee-gz8sn 8 месяцев назад +1

    학창시절에 교수님이 이렇게만 설명해주셨다면......

    • @withhoneyc
      @withhoneyc  8 месяцев назад

      좋게 봐주셔서 감사합니다🙏🙏🙏

  • @ChoChoCho472
    @ChoChoCho472 9 месяцев назад +1

    너무나 감사한 선생님께 한 가지 바라는 점은 1080P 해상도 또는 그 이상의 화질로 좀... 아 당연히 희망사항일 뿐입니다.
    감사한 영상 정말 감사합니다

    • @withhoneyc
      @withhoneyc  9 месяцев назад

      아 ㅋ 휴대폰으로 촬영하는거라 ㅠ
      죄송합니다ㅠ

    • @ChoChoCho472
      @ChoChoCho472 9 месяцев назад

      @@withhoneyc 선생님 죄송하긴요... 그런 말씀 마세요... 해라 뭐 이런거 아닙니다. 오해 마세요.. 제 희망사항일 뿐입니다. 그렇게 말씀하시면 제가 죄송합니다... 좋은 영상 정말 감사합니다. 많이 보고 잘 배우고 있습니다.

  • @alphago410
    @alphago410 5 месяцев назад

    흔히 고급언어 종사자가 C언어는 쓸모없다는 무식한소리를 자주 하는데
    C가 없으면 어떤 OS도 절대 만들수가 없음은 물론 주변장치 드라이버조차 만들수 없으며
    고급언어로 작동되는 어떤 기계장비도 C로 하위 시스템을 구성하지 못하면 절대로 작동되지 않습니다.
    포인터 연산이 고도로 응용중인 분야중에
    LED 전광판을 구동하는 mcu 에서 프레임 버퍼를 조직하는데 포인터연산 없이는 절대 불가능함.

  • @남자고용석
    @남자고용석 Год назад

    배열이란 연속적인 메모리를 가진 포인터라고 생각하면 될까요?

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

      넵넵!!! 맞습니다!!!
      연속적인 메모리를 포인터로 접근 한다고 생각 하시면 됩니다😊

  • @Robotman_1872
    @Robotman_1872 11 месяцев назад

    2차원 배열과 이중포인터 사이에는 따로 관계가 없나요..?

    • @Robotman_1872
      @Robotman_1872 11 месяцев назад

      예를 들어
      Int* a[2][3] 와 같은 이차원 배열이 있다면
      a[2][3] 을 *(*(a+2) +3) 이라고도 표현 가능하니까
      이차원 배열인 a[2][3] 의 이름인 a는 이중포인터라고 생각을 했는데
      이는 틀린생각일까요?
      이차원 배열을 함수의 입력 인자로 받을때
      Int **ptr 과깉이 이중포인터로 받지않고
      Int(* ptr) [3] 으로 받길래 의아했어요

    • @withhoneyc
      @withhoneyc  11 месяцев назад

      이차원 배열을 이중 포인터로 받을 시 포인터 연산 시 문제가 발생 합니다. 몇 바이트씩 증감해야할 지 알 수 없기 때문입니다.

  • @lsm1307
    @lsm1307 11 месяцев назад

    강사님 궁금한 게 있는데요
    #include
    int main() {


    int ary[][4] = { {10,20,30,40},{50,60,70,80} };
    int(*ptr)[4] = ary;
    printf("%d %d
    ", **ary, **ptr);
    } 제가 공부하는 책의 예제인데 출력하면 값이 10 10이 나와요 근데 ary가 배열 첫번째 행 첫 번째 원소를 가리키는 포인터니깐 그러면 *ary 이렇게만 해도 똑같이 10 나오지않나 싶어서 출력했는데 주소값이 출력되더라구요 왜 그런거죠..?

    • @withhoneyc
      @withhoneyc  11 месяцев назад

      2차원 배열에서 행 첨자는 행의 시작주소 입니다.
      *ary는 ary[0]과 같은 표현이며 0행의 시작 주소 입니다.