C言語プログラミング - 近代的な方法(注2)

第七章基本タイプ

図1に示すように、整数型(7.1)

  符号付き整数は正またはゼロである場合には、左端のビット(符号ビット)が0であり、それが負の場合、符号ビットが1です。

  デフォルトでは、C言語の整数変数が署名されています。

  小数定数は0から9の数字が含まれていますが、ゼロで始めることはできません。16進定数は0-9と文字AFが含まれており、常に0xで開始し、8進定数のみ0-7が含まれている、我々はゼロで始まる必要があります。

  文字のL(またはL)によって要求されるように、例えば、後ろに長い整数の定数を処理するためにコンパイラを強制するために:15L、0x7fffL。

  15U、0x7fffU:例えば、一定の後ろに文字U(又はU)と符号なし定数を指示します。

  オーバーフロー、プログラムの動作が未定義である符号付き整数、符号なし整数オーバーフロー、結果が定義されている:一般的に0。

図2に示すように、浮動小数点型(7.2)

  フロート(単精度浮動小数点)、二重(倍精度浮動小数点)、長い二重(拡張精度浮動小数点数):C言語は、3つの浮動小数点型を提供します。floatとdoubleは、ほとんどのアプリケーションには十分です。

  フロート6桁の精度、15桁の倍精度。57.0,5.7e + 1:それは、例えば、小数点または浮動小数点定数インデックスを含んでいなければなりません。

3、文字型(7.3)

  Cでは、文字と整数との間の関係は、実際には、int型ではなく、char型の文字定数が非常に強いです。

  範囲内の署名(署名)文字:-128-127;符号なし(符号なし)文字値の範囲:0〜255。

  ポータビリティヒント:デフォルトのchar型は、符号付きまたは符号なしていることを前提としていません。代わりにsigned char型またはcharにより、unsigned char型の違いが存在する場合..

  文字のエスケープシーケンスとデジタルエスケープシーケンス:2つのエスケープシーケンスがあります。例えば、文字のエスケープシーケンス、:\のように、\ nは、\トン。エスケープシーケンス例の番号、:\ X1B、\ 033などが挙げられます。

  関数を扱う文字:大文字と小文字、CH = TOUPPER(CH)、の#include <のctype.h>含める必要性

  scanf関数やprintfの機能でも/書き込み文字を読むことができます:

実行{ 
  scanf関数(" %のC "、およびCHの); 
} しばらく(CH!= ' \ N '

  GETCHARは()の代わりに、CHAR型の値をint型の値を返します。getchar関数()イディオム。最初の改行は、第二の空間を検出するため、検出のためではありません。

しばらく(!getchar関数()= ' \ n ' 
    ; 

一方、((CH = GETCHAR())== '  ' 

図4に示すように、変換(7.4)のタイプ

  算術式、または論理演算式の種類の数が同じでない場合、左側が代入演算子の変数型の種類は、右側の式と一致しない場合、関数呼び出しの際に、対応する引数の型パラメータとき不一致の種類; return文の型と関数の戻り値の型で表現が一致していません。

  浮動小数点オペランドのタイプの任意のタイプは、ダブルフロートに昇格する必要があり、2つのオペランドの型は、浮動小数点型ではないが、unsigned int型のintまたはlong int型に昇格する必要があります。

  C言語は、左の変数に操作式の右の種類を割り当てます。

  キャスト:(フロート)配当/ divisior;変数配当キャストフロートは、コンパイラはfloatにdivisior変換されます。

図5に示すように、型定義(7.5)

  タイプ定義のtypedef使用して、例えば、typedefのINTブール。

  タイプの定義を理解しやすく、私たちはより良い移植できるように書かれたプログラムのタイプを定義することができます。

  あなたは技術を移植することができます:移植性を高めるために、新しい整数型の名前を定義するためのtypedefを使用することを検討してください。

6、はsizeof演算子(7.6)

  sizeof(タイプ名)、戻り値は、タイプ名を記憶するために必要なバイト数を表す符号無し整数値です。

  sizeofはまた、定数、変数や式を、使用可能なのsizeofなど(I + J)

第VIII章配列  

図1に示すように、一次元アレイ(8.1)

  アレイは、複数のデータ値、各データ値を含み、同じデータ型を有するデータ構造です。

  一般的な操作の配列 

(私は= 0 ; I <N; I ++ 
    A [I] = 0 ;                     // 初期化配列

のために(私は= 0 ; I <N; I ++ 
    scanfの(" %のD "、&​​A [I]);         // アレイにデータを読み出す

ための式(I = 0、I <N; I ++ 
    SUM + = A [I];                  // 加算素子のアレイ

  アレイの初期化:INT [10] = {0};違法完全に空に初期化は、そう括弧に0を置くために、他の値はデフォルトで0に初期化されます。

  C99は、初期設定を指定します。int [15] = {[2] = 29、[9] = 7、[14] = 48}

  sizeof()/はsizeof([0])のsizeofは、アレイのアレイ素子のサイズで割った大きさで、そのようなアレイは、[10]のように、アレイ素子のサイズを計算することができます

  次の方法も使用memcpy関数割当て必要のstring.hのヘッダー・ファイルとすることができることを除いて、アレイの割り当ては、典型的には、より効率のmemcpyを含有します。

以下のための(iは= 0を I ++; I <N 
  [I] = B [i]は、

図2に示すように、多次元アレイ(8.2)

  C言語の配列は、すなわち、最初の行ゼロラインからの、および上に、行優先順に格納されます。

  多次元配列は省略し、内側のブレースをお勧めしません。

  定数配列(文が追加の前にconstの)利点:まず、プログラムは(コンパイラ変更されませんを伝えるために)(の人がプログラムを読み込むことができるように)配列を変更しない、およびヘルプコンパイラのエラーが発見されたことを示しています。

  可変長配列の利点は:プログラマは、プログラムは、実装に必要な要素の数を計算することができ、構成の長さ指定された配列を有していません。

  可変長配列の制限:静的なストレージの上限が初期化されません。

第九章機能

おすすめ

転載: www.cnblogs.com/chengabc/p/12076814.html