質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.36%

  • C

    3959questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    3739questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

ポインタが難しいといいますが何が難しいのでしょうか?

解決済

回答 8

投稿

  • 評価
  • クリップ 0
  • VIEW 908
退会済みユーザー

退会済みユーザー

自分が楽勝に理解できたので何が難しいかわかりません。
数あるプログラミングの概念の中でなんでポインタだけこんなこと言われてるんですかね。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • キャンセル

  • sazi

    2018/07/21 21:20

    あなたの理解できている事の内容を示した質問にして下さい。

    キャンセル

  • sazi

    2018/07/21 21:25

    ポイントとなる点を挙げれないようでは理解しているとは言えません。

    キャンセル

  • 退会済みユーザー

    2018/07/24 22:28

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 8

+7

ポインタの仕組みを理解するのは難しくありません。ポインタのポインタのポインタにメモリを割り当ててメモリリークやバッファオーバーランを起こさず完璧に運用するのが難しいのです。

会社経営は難しくありません。
成功するのが難しいのです。

漫画を描くのは難しくありません。
コミックスを売って生活するのが難しいのです。

C++ で何か有用な物を作ってから言ってください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/21 20:12

    それ!

    キャンセル

  • 2018/07/21 20:18

    いや、ポインタを理解するのが難しいみたいなこと言われてないですかね?

    キャンセル

  • 2018/07/21 20:19

    ポインタはアドレスを指すものです。
    それだけですが、どこが難しいのですか?

    キャンセル

  • 2018/07/21 20:20 編集

    それが(どこが難しいか)わからないから質問してるんですけど日本語もできないんですか?

    キャンセル

  • 2018/07/21 20:21

    いや、和尚、faoは何にも難しいと思ってないので、「どこが難しい?」ってfaoに問いただしてもダメだ。

    キャンセル

  • 2018/07/21 20:22

    言い方を変えましょう。
    ポインタが何かということを理解するのは難しくありません。難しいとどこで聞いたのですか?

    キャンセル

  • 2018/07/21 20:23

    いや和尚、それは色んなとこで書かれてる。

    キャンセル

  • 2018/07/21 20:30

    言い方じゃなくて言ってること変わってますよ。

    キャンセル

  • 2018/07/21 20:36

    通じなかったので。

    キャンセル

  • 2018/07/21 20:36

    これはfaoの言い分が正しい。

    キャンセル

  • 2018/07/21 20:37

    ところで、ポインタについて本当に理解していますか?
    理解していないのなら前提が崩れますが。

    キャンセル

  • 2018/07/21 20:38

    なぜなら、簡単だというのは理解している人だけが言えることだからです。

    キャンセル

  • 2018/07/21 20:43

    和尚、そうでもないっす。「簡単だ」という言葉は本人が「分かった」と思った瞬間に出る言葉で、そこに客観的な視点は存在しないっす。

    キャンセル

  • 2018/07/21 20:45

    それは分かったとは言いません。
    分かった気がしたというだけです。

    キャンセル

  • 2018/07/21 20:47

    そうですよ。ですが、「分かった」と言い張ることに誰の許可も、免許も必要はありません。

    キャンセル

  • 2018/07/21 20:48

    言い張るだけならこの質問の前提が崩れます。

    キャンセル

  • 2018/07/21 20:48

    そして、「分かった」と自分で思うことが更に前にすすむ力にもなるのが人間です。
    「やっぱり分かってなかった」は、あとで思い知っても良い。

    キャンセル

  • 2018/07/21 20:49

    質問に「確か」な前提があるとお考えですか?

    キャンセル

  • 2018/07/21 20:52

    何が難しいのか知りたいというのがこの質問です。
    わかっているかどうかで答が変わるのではありませんか?

    キャンセル

  • 2018/07/21 20:56

    変わらないと思います。
    ポインタの難しさはポインタの性質そのものというより、
    それがラッピングされた場合に、脳がどこまで処理を追えるか次第なので。

    基本、ポインタは、簡単です。

    キャンセル

  • 2018/07/21 20:58

    彼が理解できていなければ、彼にとっては難しいということになるでしょう。
    そうすれば、どこが難しかったのかを知る手がかりができます。

    キャンセル

  • 2018/07/21 21:01

    そうしたら、彼がどんな用途でどんなレヴェルでC/C++を書いているのか聞く必要がでます。
    それはQAサイトではなく、もはや、コンサルですね。

    キャンセル

  • 2018/07/21 21:01

    ですから、「確かにポインタなんて簡単だよー。ただ、仕事で使うなら覚悟が必要だけどね」が、
    適切な回答かと。

    キャンセル

  • 2018/07/21 21:03

    少なくとも、現在faoが仕事でC++を使っているとは、到底思えません。

    キャンセル

+2

あまり大きな声では言えませんが、実はポインタは、馬鹿除けなのです。
馬鹿除けのハードルを越えたことは素晴らしいですが
はしゃいでQAサイトに書き込むようなことではありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

初心者向けのCの本は、「変数は箱」みたいな説明をします。

初心者は素直なので、i=0;というコードは「iという箱に0を入れたんだな」と思うことでしょう。

さて、そんな本を読み進めて、ポインタが登場したとします。初心者はいろいろ疑問を抱くはずです。

  • 「ポインタも変数なので、箱を入れる箱? だとしたら同じ変数を指す複数のポインタを作れるのは変」
  • 「ポインタの値を表示したら、わけのわからない数字の羅列が出てくる」
  • 「ポインタに変数を代入するときは&を付ければ良いって書いてあるけど、&は何を意味しているの?」

ちょっと大げさに書いていますが、こんな感じで混乱すると思われます。

ポインタを簡単に理解できるのは、変数ってメモリ領域の識別子ですねということを理解している人です。

その辺の知識がなにもない人には、やっぱり難しいでしょう。

変数を箱のようなものに抽象化して、メモリのことは無視して考える理解が行き詰まるので難しい、ということです。yumetodoさんの回答に同意します。

もっとも、気の利いた本なら、ポインタの話に入る前に「変数は実際にはメモリ上にあって、メモリはアドレスで管理されていて~」という内容を書くと思うので、そういう本を読むとか、そういう教え方をしてくれる先生に学ぶとかすれば、理解できます。

「ポインタは訳がわからない」と言っている人は、いい本/いい先生に当たらなかったか、当たったけど教えてもらっている内容を理解していないか、のどちらかだと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ポインタは別に、難しくないので疑問そのものが見当違いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

数あるプログラミングの概念の中でなんでポインタだけこんなこと言われてるんですかね。 

変数とは何かがわかっていなかったことが突きつけられるからでしょうね。

つまり難しいのはポインタではなく変数。

そして変数とは何かを理解できるかは先天性のものじゃないかという気がしています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/21 21:57

    なので、関係代名詞…。いや、なんでもないです…。

    キャンセル

-1

私もそんなに難しいとは思いませんが、

質問が多くて、解決しきれない人が多いようなので、
多分むつかしいんじゃないかと思います。

向き不向きも有るんじゃないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-2

前にも言いましたが、faoは答えがわかってることを歯に衣を着せて質問するのはやめなさい。

今回の場合、素直に「ポインタすら理解できないサルは生きてる価値きのこ?」と、スレッドを立てるべきです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/21 20:16

    サルに生まれてしまったら努力じゃどうしようもないですから私はそういう人達には寛容でいたいですよ。
    ただ分からない人は何が分からないのか疑問に思っただけなので。

    キャンセル

  • 2018/07/21 20:19

    そういうことですか。

    それは脳の能力として、「抽象」が理解できるかによるからです。

    キャンセル

  • 2018/07/21 20:24

    ちょっと、先日5chであったことを話しますね。

    キャンセル

  • 2018/07/21 20:31

    ある人が、「わたしは、何をするか?ではなく、誰とするか?を重視しています」という日本語の英訳で「Who do you want?」としていました。
    それが話題になってluckerお兄さんが、「お前ら笑ってるけど、お前らはちゃんと英訳できるの?」と聞きました。

    すると、ある者が「With who we do it.」などと言い始めたのです。しかもそれは、ネット検索して出てきた英語教則のページから部分的に引用したものでした。

    それでluckerお兄さんは、「おい、そのwhoは関係代名詞のwhoだぞ」と指摘したのですが、そのサルは関係代名詞が何であるか全く理解していなかったので、「ネイティブの外人さんが言ってるんだ、間違ってるのはお前だ」と言い張って全く聞かなかったのです。

    ポインタというのはまさしく、英語の関係代名詞であり、抽象概念です。

    ですが、関係代名詞が全く理解できない人は沢山います。

    それは、「脳力」なのです。

    キャンセル

  • 2018/07/21 23:02

    そいつらは英文法が分かってないだけじゃないですか?
    一つ目の英文はみない表現で変な意味になりそうだけど文法的にはあってますね。
    二つ目は文法的におかしいけど意味は何となく推測できますね。
    自分が理解できてないのにあってるだのあってないだの言えるのはなんなんでしょうね

    キャンセル

  • 2018/07/22 19:41

    faoはそんな馬鹿な大人になってはいけませんよ。

    キャンセル

check解決した方法

-5

メモリを理解すればポインタも理解できる。
現実のメモリを理解しようとすべきで参考書の変数は箱などの変な例えは気にするな。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/23 06:51

    「ポインタの入口は理解できる」と訂正しましょう。

    キャンセル

  • 2018/07/26 05:10

    入口とは?

    キャンセル

同じタグがついた質問を見る

  • C

    3959questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    3739questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。