すべての人に向けたコンピュータ科学第二講

4125 ワード

1.C基礎
1.1 C言語の誕生
https://ko.wikipedia.org/wiki/C(プログラミング言語)
デニス・リッチはUnixシステムで使用するために、ケン・トンプソンが作ったB言語を発展させた.
初期のUnixの多くはアセンブリ言語で書かれていたが,ハードウェアが変化するとオペレーティングシステムを再開発する必要があり,この問題を解決するためにハードウェアとは無関係にC言語を作成した.
1.2利点
『ひとりで学ぶC言語』/徐賢宇/3 p
  • システムプログラムが利用可能:
  • プログラマブルハードウェア制御システム
  • 移植プログラムを生成できます.パソコンの種類が変わっても、同じプログラムを使うことができます.
  • 関数を使用して、単独でプログラミングできます.
  • 1.3コンパイラ
    ソースファイル:C言語で作成されたドキュメント
    コンパイル:分かりやすいソースファイルをコンピュータが理解しやすい0、1の信号、すなわちビットに変換し、機械が理解できる言語、機械言語に変換するプロセス.
    コンパイラ:特定のプログラミング言語で作成されたドキュメントを他のプログラム言語に翻訳するプログラム.ここはC言語を機械言語に翻訳するプログラムです.
    ヒント:コンピュータ端末のコマンドライン待機モードを示します.
    1.4コンパイルプロセス
  • 前処理:前処理インジケータ(#include)に従ってソースファイルを加工します.
  • コンパイル
  • :前処理が完了したファイルをコンパイルします.これにより、前処理されたソースファイルがオブジェクトファイルとなる.オブジェクトファイルは、CPUが解析できる命令で構成されたマシンファイルですが、すぐには実行されません.
  • リンク:起動コードをオブジェクトファイルにマージするプロセス.
  • 、このプロセスを実行し、main関数を呼び出してプログラム内のコードを実行します.
    1.5端末におけるソースコードとマシンコードの区別
    hello:マシンコード.端末に添付されている場合は、コンパイルされたマシンコードです.
    hello.c:ソースコード
    2.文字列の作成

  • フォーマット指定子:printf()のカッコ内で、データ型に基づいて変数を表現できます.
    ex)%d:数値,%s:文字列

  • ■演算子の割当て|Assign Operator□:左側の演算子によって指定された保管場所の演算子に、右側の演算子値を割り当てます.
  • 2.1文字と文字列定数表現
    テキスト:一重引用符で「A」を巻き上げる
    文字列:二重引用符で囲まれた「A」
    3.条件文とループ
    1.条件文
  • if , if ~else, if~if~else~
  • if(조건문){
    
    }else{
    
    }
  • switch-case-defult:整数値で実行する文を決定します.
  • switch(변수){
      case1:
    		break
      case2:
        break
      default:
        실행문
    }
    2.ループ(繰り返し文)
  • while文:条件式は、真の日数でのみ文を繰り返します.
    while(조건식){
    실행문
    }
  • for文:必要な回数で文を繰り返し実行します.
    for(초기식; 조건식; 증감식){
    실행문
    }
  • do~whiled文:繰り返したい文を実行し、条件を確認します.すなわち,条件式にかかわらず,少なくとも1回繰り返した文を実行する.
    do{
     실행문
    }while(조건식)
  • 4.資料型、フォーマット指定子、演算子
    演算子には実行の優先順位があります.
    https://dojang.io/mod/page/view.php?id=188
    5.ハードウェアの制限
  • 浮動小数点が正しくありません
  • floatに格納可能なビット数が限られているため、いくつかの不正な結果が発生します.
  • 整数オーバーフロー
  • の格納可能なビット数を超えると、バイトのHOは1に変換され、負の値を表す.
  • リファレンス
    https://docs.microsoft.com/ko-kr/cpp/c-language/c-assignment-operators?view=msvc-170