【C言語】ポインタがわかりません。教えてください。【プログラミング】

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

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

  • @にこにこさん-p6q
    @にこにこさん-p6q Год назад +9

    すごくよくわかりました!こうやって、動画で可視化していただくと、自分の頭の中でしなくてはならないことを動画の中でやっていただけているので理解も早いですね!

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

      視覚情報にすると記憶にも残りやすいですよね

  • @alucrux
    @alucrux 2 года назад +13

    Cはどんな時もポインタ使う時は記号使わないといけなかったけど、C++になると参照とかいう便利なものが登場して記号で混乱しなくて良くなったから革命的だよなあ

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

      見やすくて便利ですよね。

  • @むみ-n1w
    @むみ-n1w 2 года назад +2

    今ちょっとC言語書いてたので助かりました!!ありがとうございます!!!

    • @キバさんのゲームチャンネル
      @キバさんのゲームチャンネル 8 месяцев назад +3

      freeしてくれメンス・・・

    • @むみ-n1w
      @むみ-n1w 8 месяцев назад

      @@キバさんのゲームチャンネル ??

    • @ろぜぃ-j2p
      @ろぜぃ-j2p 3 месяца назад +1

      Rustと違ってメモリ管理が安全ではないので、解放しないとやばいことになりますね笑笑

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

    分かりやすかったからチャンネル登録しました

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

      ありがとうございます!

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

    本にはメモリの番地が難しく書かれてて逆に
    訳が分からなくなって諦めましたw

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

      厳密に書かれすぎていると、理解しづらいですね

  • @chochomaru_maru
    @chochomaru_maru 2 года назад +15

    ポインタのポインタが出てくると更に頭がおかしくなるやつ

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

      更にポインタのポインタのポインタが出てくると、、、

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

    ポインタってとある型のインスタンスが存在することが確定されているとき、そのインスタンスを指し示す。
    1を足せば、その足し算が許容されている限りにおいて、あるべき値が存在すべきアドレスを示す。
    これでいい?

  • @bekosu
    @bekosu 2 месяца назад

    やばいほどわかりやすい、x = y ってコピーだったってことを初めて知った。今までxはyだからx使う時はy使ってねって意味かと思ってた

  • @xxaio-r2q
    @xxaio-r2q 11 месяцев назад

    わかりやすい

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

    アスタリスクがなんで付いてるかわからなかったけどポインタのだったか、

  • @Arsche
    @Arsche Год назад +13

    ポインタに1を足す意味がわからない。

    • @kazuselen
      @kazuselen 5 месяцев назад +2

      ポインタが示すアドレスよりもポインタの元の変数の種類で1つ分後ろのアドレスを参照するといった処理がしたいときにやるやつかな?

    • @Arsche
      @Arsche 5 месяцев назад +1

      @@kazuselen そこになにもなかったら、どうなんの?

    • @kazuselen
      @kazuselen 5 месяцев назад +1

      @@Arsche 初期化されてない場合何が入ってるかはわからないとしか……

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

      @@Arsche言葉遣い改めろあとggrks

    • @ryu2543
      @ryu2543 3 месяца назад +2

      ​@@Arsche未定義動作なので何が起こるか分からない

  • @MeSoMush
    @MeSoMush 2 года назад +4

    アドレスレジスタとデータレジスタって感じでアセンブラ書いてた頃の方が分かり易いよね(でも手間かかるけどねw)

    • @馬鹿は伝染病で移る
      @馬鹿は伝染病で移る Месяц назад

      アセンブラからc学ぶと解りづらいんですよね…。
      逆にcを学んでからアセンブラを学ぶとポインタとかこういう意味だったのか!
      となるのかもしれない。

  • @かみちょうさぶ-n6e
    @かみちょうさぶ-n6e 9 месяцев назад

    先頭アドレスとポインタの違いがわからないので教えてください

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

      先頭アドレス…あるデータ構造(例えば配列)の最初の要素を指し示すアドレス
      ポインタ…アドレスを保存するために使用される変数
      つまり、先頭アドレスは特定の位置のアドレスであり、ポインタはそのようなアドレスを保持するための変数です。

  • @あぴよん-i5h
    @あぴよん-i5h 11 месяцев назад

    排他的論理OR 使えばテンポラリ変数使わなくてもスワップできますね。
    (引き算だけで同様にできたと思うけど)

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

    むしろ、配列のイメージなの?

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

    実数渡しと参照渡しかしら。

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

      参照渡しじゃなくて、ポインタ渡しだと思います!(参照渡しはまだあまり理解してないです…)

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

    プログラムカウンターに少し似てる

  • @Sharpest-Madman
    @Sharpest-Madman Год назад

    これで、参照渡し的な、値渡しを表現しました。
    #include
    int dast(int x, int y)
    {
    int temp;
    temp = x;
    x = y;
    y = temp;
    return x;
    }
    int dast1(int x, int y)
    {
    int temp;
    temp = x;
    x = y;
    y = temp;
    return y;
    }
    int main(void)
    {
    int a,b;
    scanf("%d %d", &a, &b);
    dast(a, b);
    printf("%d %d", a, b);
    printf("%d",dast(a,b));
    printf("%d", dast1(a, b));
    return 0;
    }
    関数内でのみ有効である証明?といいますか。