アルゴリズムとデータ構造、ポインタとメモリの概要基礎

データ構造が定義されています

  どのように我々は、メインメモリ(RAM)に特定のデータ型と特定のストレージ構造を保存するために、実数と複雑な問題の多くを入れてください、そしてこれに基づいて要素を削除し、そのような要素を見つけると(特定の機能を達成するために、実行されたすべての要素をソートするための適切なアクションが、この操作はまた、アルゴリズムと呼ばれます)

  +データ構造=関係個別被写体

  格納されたデータ= ON演算

  アルゴリズムを測定します。

  •     時間計算:おそらく実行するプログラムの数ではなく、実行時間
  •     宇宙複雑:アルゴリズムの実行中には、おそらく最大メモリによって占有されています
  •     難易度
  •     丈夫

 

メモリの基本的な考え方:

  1.メモリデバイスは、データを格納するために使用されます。その記憶レジスタとハードディスク間の速度。

  2. CPUメモリは、メモリにロードされなければならないプログラムやデータ内のすべてのハードドライブの後に実行するためにCPUによってのみアクセスすることができる唯一の大容量の記憶装置です。注意:CPUが直接あなたのハードディスク上のデータを処理することはできません!

  3.メモリーの問題は、ソフトウェア開発の中核問題の一つです!以下のような:それは解放されたメモリ割り当て、解放、メモリの割り当て、?誰割り当てと解放?どのような場所に割り当てられましたか?どのようにアクセスするには?

  4.メモリ記憶空間は、線形一次元マルチバイトです。

  そして、メモリの5基本単位はバイトに分割されています。

  6.各バイトは、8ビットを含み、各ビットは、0又は1を格納します。

  7.バイト数と対応。各バイトは、1つのバイトに対応する番号は、この番号もバイトと呼ばれる一意に決定された数を有します。

  8.メモリ空間を管理することができるシステムのサイズが参加する二進数字の数に依存します。例えば:DOSシステム20ビット・アドレッシング・スキーム、すなわち、2 ^ 20Bは1MBのメモリを制御することができます。

メモリを搭載したソフトウェアの実行中関係(ごみ)

  メモリは、オペレーティングシステムの一元管理下で使用されます!

  1.メモリ内に、十分な空き領域、オペレーティングシステムのアプリケーションのストレージ容量を実行するために必要なソフトウェアを実行する前に、オペレーティング・システムは、メモリ空間に格納されているソフトウェアの一部のメモリと外部メモリのコピーを割り当て、およびソフトウェアを起動します!

  2.ソフトウェアの動作中に、ソフトウェアは、もはや他のソフトウェアに割り当てられたメモリ空間によって占有されていません

  別のソフトウェアに割り当てられるために:3.ソフトウェアの実行が終了すると、オペレーティングシステムは、(オペレーティングシステムがレガシーデータ空間のメモリをクリアしません)メモリ空間を回復します。魅力を要約すると、スペースがソフトウェアに割り当てられている可能性が高い他のソフトウェアで使用される前の残差データの後に、このようなデータがゴミデータと呼ばれる存在。だから、通常我々は、変数、配列として、優れた収納スペースの後に割り当てられるメモリ空間を初期化します!

 

ポインタを定義します

  そのアドレスポインタは、アドレスがメモリセルの数であり、0から2 ^ 8-1の負でない整数の範囲は、繰り返すことができないが、格納されたコンテンツを繰り返すことができます。ポインタ変数は可変アドレスメモリセルに記憶され、メモリセルの内容を格納することができません。

1つの#include <stdio.hの>
 2  INT メイン(){
 3      intは * P; // Pは変数の名前であり、INT * Pだけint型の変数が格納された変数値を示し、char型の変数を保存したり、他のことはできません値
4。     int型 I = 10 ;
 5      int型、J;
 6      // p =&J; // ない値jので、Pの単位は不明、pはスパム数メモリとして充填されるアドレスを受信しない
7。      P =&Iは;   // Pへのポインタ変数のアドレスIを
8。      J = * P;   // 受信したアドレスのIポインタ変数pので、* P iはアドレスのタイムアウト値をとり、その後Jに割り当てられた変数を表している
9。     
10      のprintf(" %D = I、J =%D、D * P =%、I、J、P *);   // 10を出力する
。11     リターン 0 ;
12 }

オペレーティングシステムによって制御されるハードウェアは、プログラムがメモリを使い果たしたときに変数にメモリを割り当てるために、オペレーティング・システムを要求するコンパイラがリサイクルされますが、ゴミデータへのデータは、消去されていません。

 

関数と呼ば呼び出す関数内で変数の値を変更する方法が一般的ですか?

  1.引数には、関連する変数のアドレスです

  2.変数のタイプなどのパラメータの型がポインタ変数であります

  パラメータ変数名*モードによって呼び出される関数3.、変数、main関数の値を変更することができます

1つの#include <stdio.hの>
 2  空隙 F(int型 *のP){
 3。      * P = 100 ;
 4  }
 5。 INT メイン(){
 6。     int型 I = 9。 。7      F(&I)
 。8      のprintf(" %D "、I); // 代わりに、出力100、9。
9。     リターン 0 ;
 10 }

 

おすすめ

転載: www.cnblogs.com/sunbr/p/11247305.html