• 締切済み

C言語のポインタについて

情報処理技術者試験を受ける場合、 C言語、COBOL、Javaのどれが一番習得しやすいでしょうか。 だいぶ前にC言語でプログラミングしたことがあったので 問題を解いていたのですが、 全然理解が出来ず辟易してしまいました。 情報処理技術者試験を受けた方、アドバイスお願いします。

みんなの回答

noname#48319
noname#48319
回答No.4

こんにちは C言語で基本情報処理技術者試験に合格した学生です。 思い切ってCASLIIを勉強して見たらどうでしょうか。 CASLIIなんて何の役にも立たない仮想言語、そんなもんで就職できない、と思っていませんか。 私もCASLIIを馬鹿にしている一人でした。 しかし、アセンブラ、COBOL、FORTRAN、が主流だった時代にアセンブラをしっかり勉強していた年輩の先生はなぜ独学でCやJAVAが駆使できるようになったのだろうか疑問をもっていました。 私自身このサイトの質問でSEらしい人からアドバイスをもらい、CASLIIを一冊勉強しました。 すると、理屈抜きでこうなるもんだと言い聞かせてきたCの疑問が次々と解けていくのです。 例えば、なぜ配列名や関数名は先頭ポインタを表すのか。 (ラベルの説明が出てきたところでわかります。) float型の単精度とdouble型の倍精度ってどう言う意味なのか。 (午前対策で勉強したBCDコードがどのように使われているかわかります。) ポインタはアドレスを知りたいだけなのに、int *やdouble *のようになぜデータの種類に分けなくてはならないのか。 (ワードやダブルのメモリ確保の説明が出てきたらわかります。) 教科書では抽象的に書かれているアドレス修飾のことが具体的に理解できます。アドレス修飾のことをアセンブラではポインタといいます。 などなど、いろんなことが理解できました。 Cはポインタあたりから難しいと言って選択言語をJAVAに切り替えてしまう同級生を何人も見てきました。 確かにJAVAは多くの会社でも使われている言語ですが、就職後また同じ壁にぶつかってしまうと思います。 JAVAを勉強し始めると、こんなコードが出てきます。 String name; name = new String("太郎"); Cでポインタをしっかり勉強していればnameはポインタのようなものだとわかります。(malloc関数でメモリを確保して文字列を代入しそのポインタをnameに代入しているようなことが直感的に推類できます。) さらにC++も勉強しておけばnameは参照型だとわかります。(Stringクラスのオブジェクトnameに"太郎"の参照型を代入した。) ポインタがわかっていないと、こんな所で理解が弱く苦労すると思います。

  • maguro999
  • ベストアンサー率21% (59/273)
回答No.3

>だいぶ前にC言語でプログラミングしたことがあったので >問題を解いていたのですが、 >全然理解が出来ず辟易してしまいました。 どの言語もそんなことでは覚えられません。 実際にソースを書いて試してみないと CASLはアセンブラの仮想言語なのでシミュレータソフトを利用しましょう。 で質問のタイトルになっている >C言語のポインタについて これが理解できなかったということですかね? だったら簡単です。 ポインタは実データが入っているのではなくてデータの場所が入った物と考えれば良いのです。 例として 箱(プランター)に苗が直接植えられているのが普通の変数 広大な畑に番号が振ってあってそこに苗が植えられていて箱に畑の番号の紙が入っているのがポインタ って思っておけばそんなに難しく考えずにわかりやすいと思います。 CASLは仮想言語のためアセンブラといっても出来ることはかなり制限されています。 ですから問題としてもバリエーションはそんなに多くないですけど 将来的な直接的言語としての実用性はゼロ(アセンブラをやる基盤としてはいいけど他の言語と違って直接は実用はなし)。 COBOLはコーディング規約は仕様でがっちりしているので基本的には 読みやすく習得もしやすいだろうけどこれも一部業種を除いて廃れ行く言語ですね。 新規に制作もあまりなく既存のプログラムの手直しがメインのようです。 CとJavaだと サーバサイド制作をしたいならJava クライアントサイドならC(C++)。 といってもJavaでクライアントサイドのソフトは作れますし Cでもサーバサイドのソフトはつくれますけど 将来どの方面に行きたいか考えて選びましょう。

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.2

専門学校では短期間の合格を目指すためにCASLで受験させる学校が圧倒的に多いそうです。理由は、プログラムが一番短くなるから。 言語の難易度よりは問題に難易度の差があります。一般的に難易度は CASL→COBOL→JAVA→C の順番に難しくなるそうです。ちょうど、開発現場で実用的な言語のちょうど逆順になります。

回答No.1

基本情報処理技術者の試験だと思いますが、 アセンブラはいかがでしょうか。 Cのポインタについての考え方はそれとなく理解しておくと、色々なコンピュータの考え方で役に立つと思いますので、是非慣れておくとよろしいと思いますが、プログラム経験が浅く、実務経験が無いのならば、候補になぜかありませんが、アセンブラが一番勉強しやすいです。だから、専門学生などは多くの人がアセンブラで試験をうけます。 COBOLとかは実務経験がないと難しい気がします。JAVAも一人でゼロから勉強するのは至難な気がします。Cもなにかと言語に癖がありそうです。(憶測な部分もあります) アセンブラは、レジスタに細かい入出力を繰り返す考え方だけなので、とっつきにくいようですが、解れば一番簡単です。

関連するQ&A