• ベストアンサー

C言語のポインタを理解するには

Yune-Kichiの回答

回答No.5

「Cにおけるポインタ」を知りたいのであれば,メモリの動きもアセンブラも関係ありません。 単純に, ・他のオブジェクト (変数が代表) や関数の別名を作り出す機能 (間接参照) ・配列要素へのアクセス機能 (配列反復子) がポインタの機能です。 メモリとかアセンブラとかを知れば,特定の実装におけるポインタの振る舞いがよくわかるのですが,それを「ポインタとはこういうものである」と勘違いしてしまう可能性が高いです。 8086の主だったコンパイラにおいて,ポインタの実装がCコードに影響を与えていたことが,ポインタとメモリやアドレス,アセンブラを結びつける原因になっているのかもしれません。

関連するQ&A

  • PICライタ (C言語→HEXファイル)

    今PICライタについて独学で勉強しています。 今ソフト的には秋月のPICライタおよび、MPLAB使ってます。 しかし、MPLABがC言語読み込めないため迷っています。 そこで質問なんですが (1) C言語をアセンブラ言語に変換する無料ソフトありますか? (2) (1)をあきらめたとしてアセンブラ言語で書くとして、アセンブラ言語でPICのプログラム書くための、わかりやすい本などご存知ですか? やっぱりCコンパイラを買うしかないのでしょうか??

  • MPLAB C18のC言語について

    趣味でPICをはじめて、いままではアセンブラ言語でプログラムを書いてきました。 こんどPIC18Fに挑戦しようと思っているんですが、PIC18FはC言語で書いた ほうがいいらしいですね。無料でMPLAB C18というC言語のコンパイラが使えるらしいですし。 C言語は勉強したことがないので、とりあえずC言語を勉強しなければならないんですが、 C言語っていろいろ種類があるんですね。C,C++,C#、あとvisual basic系のCとか。 なんだかさっぱりわかりません。 MPLAB C18のC言語にもっとも近いのはどれでしょうか。おしえてください。

  • アセンブラ→C言語

    アセンブラを学んでから C言語を学ぶとわかりやすい(理解しやすい) と聴きました。 どうやって勉強すれば良いですか? やっぱり本屋さんでアセンブラについての本を買って 勉強した方が良いですか? 今まで全くコンピュ-タ-についての言語を 習ったことがありません。

  • C、C++、Peal、PHPその他「高級言語」といわれる言語について

    僕はPICマイコン(16シリーズ)を趣味で使っており 言語はアセンブラを使っています。 で、質問なんですが最近ホームページを作りたくなり LINUXの勉強も含め自宅サーバーを立ち上げCGIをやってみようと思いました。 で、CGIといえばPealだろと思っていたので、その手の入門書や ネットの情報を見ると冒頭には大抵「大して難しくない」的な事が 書いてありました。 実際にやってみたんですがチンプンカンプンでした。 イメージとしては下記のような感じなんだと思うんですが マイコンのアセンブラと比べたらよっぽど低級言語な気がしてなりません。 アセンブラ=低級言語=人間にわかり難い C、C++等=高級言語=人間に解り易い アセンブラもはじめはチンプンカンプンでしたが、ある程度理解してしまえばそれなりに使いこなせるようになりました。 マイコンのアセンブラは命令数も少ないしイエスかノーだけで「もしも~」とかないので単純といえば単純なんですが・・・ 質問1 高級言語の「人間に判りやすい」っていうのは具体的にどういうことなんでしょうか? 質問2 最近やたらとPHPが流行ってる気がします。 もうPealは廃れてしまったんでしょうか?

    • ベストアンサー
    • Perl
  • C言語の悲しさ

    C言語を勉強しようとC言語の教材をこの間買ってきたのですが、 自分の予想していた?プログラムは、 灰色のウィンドウがでてきて、ボタンがあって、選べたりラジオボタンがあったりの、ソフトウェアみたいなのだったのですが、 実際、コマンドプロンプトという、すごく地味なものだったので、がっかりしました。 自分の予想のようなソフトウェアを作るのには、どういう言語が必要なんでしょうか? それとも、C言語にも、そのようなソフトウェアが作れるのでしょうか?

  • C言語でDOS画面のプログラム(できるなら、メニュー方式で関数ポインタとか使ったものがいいです)

    いまどきあるかわかりませんが。。 C言語をだいぶ勉強したので本格的にプログラムを作ってみたいです(趣味プログラマーです)。 そこで、DOS画面(というかコマンドプロンプト)で、メニューを選択して色々な処理を行うプログラムを作ってみたいです。私は、関数ポインタが気に入りましたので、関数ポインタがあると尚いいです。 いまどき、こんなプログラムがあるか知りませんが、ご存知の方はおしえてください。よろしくお願いします。WINAPIとかは、なしの方針で・・

  • C言語の勉強について

    C言語の勉強について わたしは、前からC言語に興味を持っており入門書を買って勉強しました。 基本的なことは理解できましたが、これからどうすればいいのかわからなくなってしまいました Cに興味を持つ前はHSPをしていたのですが、これはさすがにプログラムの基本さえわかっていれば ヘルプを開き自分で考えて、だいぶ本格的ななゲームも作れたのですが、Cは思ったとおりに行かなくて そもそも、コマンドプロンプトから実行するプログラムしかわからないのですが みなさんは、私くらいのころはどんなことをしていましたか? ひたすらプログラムを書いていましたか? それとwindowsアプリケーションの開発はもっと後になりますか? C言語ではどんなソフトを作ったりしたことがありますか?

  • C言語もしくはC++言語プログラマになれますか?

    私は30歳になったばかりです。諸事情によりずっと家にいます(母親の病気などです)。 5年ほど前JavaでWebシステムを作っていましたが、やめました。それ以降もJavaやPHP、VB.NETなどやってはいるんですが、なかなか腰を落ち着けられません。 私は本来の性格として基礎固めが大好きというか基礎がしっかりしていないと意味がないと考えてしまうタイプです。こと、プログラムに関しても、コンピュータの仕組みから理解してアセンブラやらの書物を読み、C言語を勉強したりするとコンピュータを根本から理解できて、やっと自分の役に立つという思考しかできないものです。いきなり高級言語のJavaやらC#やら.NETやらやっても、うわべだけさすってるようで、根本的な理解を得られないので(コンピュータに対する)、無駄だなあとどうしても感じてしまうのです。また、それよりも基礎からしっかり積み重ねた方が後々、新しい言語ができても理解の度合いというかどっしりと理解できるとおもうのです。 しかし、就職のことを考え、PHPやらC#やらJavaやらVB.NETやらを優先してきてどれもどっちつかずになってしまいました。当然Cなども合間をぬってやっていました。 で、私は、そのどっちつかずな状態がいやなので、CとC++に絞って勉強することにしました。で、低級コンパイラの中身やアセンブラも勉強していこうと決心しました。しかし、就職のことを考えると不安です。 あと、1年みっちり勉強するとして、CやC++の就職先はあるのでしょうか?自分としては、働ける限り年齢がいくつになってもがんばりたいとおもうのですが、なにしろ世間的にいうと全く遅い年齢です。もし、励ましになるような事もありましたら、ご回答していただければ、うれしいです。よろしくお願いします。

  • C言語次のステップ

    C言語について一通り勉強しました。 (入門的な本に書いてあるような事柄) 次に勉強するといいことを教えてください。 それから、入門レベルよりひとつ上の内容の書籍があれば教えてください。 ポインタ、アセンブラ、 マルチスレッド、マルチプロセス、といった ちょっと深いテーマみたいなのも教えてください。 (ここにあげたのもいまいちわかってませんが、、)

  • C言語とアセンブラ言語による計算プログラミング

    "AB間の距離を求めなさい。" 下の画像において、AC=r1、BC=r2、∠ACB=α°とするとき、AB間の距離dを求めなさい。 上記の問題について困っております。 この問題の解答については、C言語とアセンブラ言語によるプログラミングで考えるようになっており、FPU(MATH COPROCESSOR)を使用し、C言語側で変数や関数宣言、printfなどでの計算結果出力を記述し、アセンブラ言語側で計算するプログラム問題です。 原則として、C言語側で計算してはいけない仕様になっています。 そして、2つのオブジェクトファイルをリンクさせ、実行可能ファイル(.exe)を作成し、コマンドプロンプト に計算結果を表示する。とういう問題です。 ・アセンブラ言語側での使用する命令のプロセッサアーキテクチャのタイプは「.386」 ・作成するオブジェクトのメモリモデルは、Windowsなので「FLAT」 図の画像は添付してあるので、どうかご回答のほどよろしくお願い致します。