• ベストアンサー

C言語特有の文法や概念について

C言語に特有な記述の仕方や概念って何かあるでしょうか? C言語のみにある特性でなくてもよく、例えば、Curly-bracket言語であるとか、返り値なしのvoidが扱われているとか・・・。 なるべく、手続き型言語である等といったパラダイム的なものではなく、C言語でプログラムを書く上での特殊な文法とか、そういったものを教えて頂ければと思います。 ちょっとわかりづらい質問で申し訳ありませんが、よろしくお願い致します。

質問者が選んだベストアンサー

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

厳密な証明ではないですが。 ・main関数を呼び出すことができる ・アセンブラ以外でビット演算、シフト演算、ポインタを扱う事ができる ※FORTRANでは参照渡しなのでポインタといえない事もない ・インラインアセンブラを展開できる(事が多い。言語仕様ではないので為念) ・配列などの添字範囲のチェックをしない

shippooooo
質問者

お礼

回答ありがとうございます。色んな意見を伺いたいと思っていますので、厳密な証明ではなくても全然構いません。 言われてみると、全て「あぁ、確かに!」というものばかりです。 非常に参考になりました。どうもありがとうございました。

その他の回答 (1)

回答No.2

a = 1 が、(文ではなくて)式であるところ。 このおかげで、 a = b = c = 0; と書けたり、 有名な、if( x = 1 ) で大変な目にあったり。

shippooooo
質問者

お礼

確かに、書き方でもそうですし、特定の概念ともいえますね。 参考になりました。 どうもありがとうございます、。

関連するQ&A

  • C言語:関数の返り値と引数について

    C言語:関数の返り値と引数について C言語の関数を作るとき、ほしい値とかを引数にして渡す場合と、そのまま返り値で渡す場合の二種類がありますよね? 例えば、 ・void Smooth( Image *src, Image *dst, int param ); ・Image *Smooth( Image *src, int param ); みたいな感じで mallocとかは返り値で渡してますけど、opencvの関数(例えばcvSmooth)とかは引数にしてます これって使い分けとかあるんでしょうか?

  • C言語学習について

    大学4年生で研究室に配属されています。プログラムをする学科にいますが、あまりプログラムを作れません。 C言語の文法書を読んだり、サンプルプログラムを見たりしてはいます。独学はなかなか難しいです。 特にC言語でつくりたいものもありません。 C言語を使えるようになりたいのですがどうしたらいいでしょうか。C言語のいろいろな本を借りたり見たりはしています。実際に作った方が身につくとは思うのですが。サンプルプログラムを打つのも飽きてしまいます。 C++とかJAVAとかありますが、C言語しか使ったことがないのですが気になります。 近くにプログラムを教えてくれるような教室もありません。 助言お願いします。

  • C言語

    プログラム言語のC言語について教えて下さい。 昔BASICを少し勉強しました。 それからプログラム言語から離れてましたがC言語を見て疑問があります。 BASICなら例えば最初に 10 ~ 20 GO TO~ みたいに上段、左詰めでプログラムを書いてましたがC言語って本を見るとやたら左側が膨らんだ?ような空白みたいな表記になってますよね?(説明下手でごめんなさい) この空白みたいな意味が分からないし、この空白?もスペースキーで打つのか分かりません。 C言語の表記の仕方について詳しい方、こんな初心者にでも簡単に分かるように説明して下さる方いたらよろしくお願いします。

  • C言語を勉強したい。

    C言語でモーター、LED制御等行いたいのですが、参考書等はほとんど私の目的としたものに関係しない分野での参考プログラムです。 また、ロボット等のプログラムはアイコンをならべてプログラムを記述する方法ですが、肝心のC言語での記述は確認できません。 どなたか、モーター、あるいはLED等の制御を行うプログラム及びその解説,等がある参考書、キットなどご存じの方、教えて頂けませんか。 

  • FORTRANからC言語へ

    FORTRANで記述したプログラムをC言語に翻訳というか書き直してくれるソフトはないものでしょうか?

  • プログラミング言語Cとプログラミング言語C++

    プログラミング言語Cとプログラミング言語C++の違いって何ですか? あと、プログラミング言語C++についていくつか質問があります。 #include <iostream> using namespace std; void main(){ cout << "Hello world!" << endl; } このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか? using namespace stdって何ですか? あと、 cout <<"Hello world!"って何ですか?

  • C言語について教えてください。

    C言語について教えてください。 C言語ソフト「C言語をはじめよう」で、sin,cos,tanを求めたり、計算(sin=cos*tanや、sin^2(sinの二乗)+cos^2(cosの二乗)=1や、cos=sin/tan,tan=sin/cos)するプログラムを作りたくて、ネットを見たのですが、全然意味がわかりません。 また、√(平方根)の表示や、計算する(1/√3^2(√3分の1の二乗)*√3見たいな計算)プログラムを作りたいと思いますが、こちらも同様です。 #include<stdio.h> #include<math.h> int main(void) ここまではわかりますが、ここから先がわかりません。 どなたか。詳しくわかりやすく、入力例などをよろしくお願いします。 また、上記のプログラムや、書き方が違いましたら、こちらもご指摘お願いします。 なるべく早く、ご解答ください。

  • C言語をFORTRANへ

    C言語で記述したプログラムをFORTRANに翻訳というか書き直してくれるソフトはないものでしょうか? FORTRANをCに書き直すソフトなら存在するんですけど・・・

  • プログラム言語の文法を覚えた後?

    プログラム言語で何を作っていいか、どう始めればいいかわかりません。 PHP、javascriptの本を読み(java、cなども) 文法やオブジェクト指向の概念は ある程度勉強しました。 実際、本のサンプルを発展させて データベースも使って家計簿や 動的サイト(ajaxなども使い)を作りました。 ただ、現状はそれ以外のものは どう作っていいかが全くわかりません。 PHPではwebサイト構築が主ですが 例えばC言語ならPHPで出来ない、 カーナビやゲーム、家電など 日常のありとあらゆるものが作れると聞きます。 プログラムのお作法は、 ある程度身に付いたとは思いますが いざ、じゃあカーナビを 作ってみようと思って作れるかと言えば 業務レベルの出来栄えでなくても現実は出来ません。 カーナビは端末など プログラム以外に機材がいると思うので 機材がいらないPC内で動くソフトウェア (レジューム付ダウンロードツールなど)でさえ どう作り始めればいいか見当がつきません。 ネットで検索するにしても 何を調べればいいか ワードもわかりません。 言語を習得した後の、 どう作る?という次のステップで止まっています。 詳しい方おられましたらよろしくお願いします。

  • C言語助けてください!

    C言語 やっているのですが写真のようなプログラムなのですがエラーが出て実行できません… どのように対処すればよいか教えていただけたら嬉しいです… エラー内容は「33行目」で記述エラーを発見しました。 「function pointer」を付け忘れています。 になっております… よろしくお願いします。

専門家に質問してみよう