Cでパラメータを入力++

Cでパラメータを入力++


配列

配列は、同じ型のデータのコレクションです。配列の導入が大幅にプログラムを改良する、プログラム内の変数の数を減らし、プログラム中の変数の数が多いを定義する必要はありませんが、配列は使いやすい、明確にすることが、明確にデータ間のリンクを反映しています。多くの優れたアルゴリズムは、アレイに関連付けされています。巧みプログラムの可読性を強化するために大幅に、プログラミングの効率を向上させることができ、アレイを使用しています。

メモリセルアレイは、メモリに占有アレイは、メモリ内の連続したメモリ位置を占めると言うことである、連続しています。32ビットマシンでは、int型の値は、4バイトを占め、[0]はアドレス2000に、アドレスは[1]、2004 [2]のアドレス2008、[3]のアドレスである場合これは、2012 ......というようにです。

差分STRLEN()およびsizeof()を次のように

  • strlenを()実行時に計算するための機能です。文字引数はポインタ(CHAR *)でなければならない、と「\ 0」である終了する必要があります。配列名が引数として渡された場合には、実際には、それはポインタの配列に縮小されています。その機能は、文字列の長さを返すことです。
  • sizeof()はデータ空間のバイト数を計算するために、コンパイル時にオペレータではなく関数です。したがって、はsizeofサイズが動的に割り当てられたメモリ空間を返すために使用することはできません。sizeof一般戻り型と静的に割り当てられたオブジェクトで使用される、空間オブジェクト、構造体の戻り値と、配列または構造によって占め、配列に格納されたコンテンツは問題ではありません。

 ポインタ

メモリに格納されたデータ:変数は、プログラムで定義されている場合、メモリを割り当てるためには、コンパイル時に変数を与えました。プログラムで定義された変数の種類に応じて、システム、スペースの長さが割り当てられました。例えば、C ++コンパイラシステム4バイトは、32ビットマシン上で整数変数に割り当てられ、4バイトの単精度浮動小数点変数に割り当てるには、1バイト文字変数が割り当てられます。各バイトのメモリ領域は、この数はアドレスで番号を持っています。プログラムは変数のアドレスの変数名を変換した後、コンパイルされた後、変数値は、アドレスを介してアクセスされます。

この方法では、変数、変数値のアクセスアドレスは、ダイレクトモードまたはダイレクトアクセスモードと呼ばれます。それはまた別と呼ばれる間接アクセス(間接アクセス)、アドレスを格納するために設計されたプログラムで特定の変数の定義を採用することができます。可変アドレスで見つけることができる必要な要素は、それを言うことができるので、変数は、アドレスユニットを指します。アドレス「ポインタ」を可視化するために呼ばれるこのように、変数のポインタアドレスを変数と呼ばれています。他の変数(即ち、ポインタ)のアドレスを格納するために使用される特殊な変数が存在する場合、それはポインタ変数と呼ばれています。ポインタ変数の値(すなわち、ポインタ変数に格納された値)は、アドレス(すなわち、ポインタ)です。

また、ポインタ変数、共通変数を変数にこのアドレスポイントまたは機能は、実際のデータに格納され、ポインタ変数は、メモリ内のアドレスが含まれています。ポインタ記載の内容:ポインタ型のタイプへのポインタポイント、ポインタのポインタ値は、それ自体のメモリ領域を占有します。

そして、ポインタの配列:

ポインタの配列も行ポインタとして知られている、INT(* P)[n]が定義されると仮定する ; 及び()高優先度、ポインタpが最初に説明され、及び整数の一次元配列を指します。一次元アレイがnの長さ、Pは、p + 1、pは、データ長nは整数を横断する場合に実行されるステップサイズ、と言うことができます。

ポインタ配列、INT * P [n]が想定定義される;] [高優先度と、Pと最初に理解することができるが、アレイなり、その後、INT *説明これは整数有する配列、Nポインタ型へのポインタであります配列要素。この操作が行われた場合、P + 1は、pはとらわれない表現であるため、唯一のPが存在する、P = Aような割り当てが間違っている、間違っている[0]、P [1 ]、P [2] ... P [ N-1]、それらはポインタ変数、のみアドレスを格納するために使用される変数です。この割り当ては、* P = A、* Pは、Aの最初のアドレス、ポインタ配列の最初の要素の値を表します

2つの配列のポインタとポインタ配列との間の差:

  • 配列ポインタは、単にポインタ変数であり、二次元配列を指すように設計されたC言語と考えることができ、それはメモリ・ストレージ・スペースにポインタを取ります。
  • ポインタ配列は、記憶空間が複数のポインタによって占められるメモリのアレイに存在するポインタ変数の複数です。また、必要なときに二次元配列を指すが、それに注意することは、アレイ名が同じであることにより、その直接参照は、引用されました。

文字列のポインタ:

(1)それ自体が第1のアドレス文字列を格納するために、ポインタ変数文字列変数です。ポインタが定義されている場合、コンパイラは、それだけ空間ポインタ自体が割り当てられ、オブジェクトポインタポイントのためのスペースを割り当てません。

(2)文字列自体は、文字列としての第1頭で処理「\ 0」末端マークの連続したメモリアドレス空間に配置されています。

文字配列は配列要素の複数から構成されているので、(3)、文字列の各要素が格納されています。文字列を定義する場合、メモリセルがコンパイル割り当てられ、各要素は、決定されたアドレスを有します。

関数ポインタ:

関数ポインタ変数は、関数へのポインタです。したがって、関数ポインタは、最初のポインタ変数、および関数にこの変数です。コンパイル時にC ++は、各エントリは、関数のアドレスを有し、エントリ・アドレスは、アドレスへの関数ポインタのポイントです。あなたが関数の変数へのポインタを持っていたら、ポインタ変数は、関数呼び出しで使用することができます。

関数ポインタは、メソッドがあると宣言しました:

                                 戻り値(*ポインタ変数名)([パラメータリスト]);  

前記説明した関数の戻り値型の戻り型、(*ポインタ変数名)フレーズ括弧を省略することができません。


引用文

これは、参照型の変数、エイリアスとして使用される変数です。

メソッドの文が引用されています。

                          識別子の参照名を入力し=&変数名をターゲット。

変数、すなわち、別名に基準となる基準Rの定義。この文の後、AおよびRの役割は、すべて同じ変数を表し、同じです。Rと同一のメモリを占有するセル、即ち、同一のアドレスを有します。あなたが参照変数を宣言するとき、あなたはそれが可変であるのに代わってその文を作る初期化する必要があります。関数の実行時に、参照他の変数として再使用することができません。

重要な役割は、関数の引数として引用されています。


 

例としては、パラメータとして引用しました:

書式#include <iostreamの>

名前空間stdを使用。

無効Mmin1(int型、int型のB)

{

int型温度;

もし(> B)

{

TEMP =;

A = B。

B = TEMP。

}

}

無効Mmin2(INT&、INT&B)の関数として//参照パラメータ

{

int型温度;

もし(> B)

{

TEMP =;

A = B。

B = TEMP。

}

}

メインint型()

{

int型= 30、B = 20。

Mmin1(B)

裁判所未満<< << "" << B <<てendl; //、a、b値は変更されません。

Mmin2(B)

COUT << << "" << B << ENDL; //の値は20であり、Bは、Bの値が変更され、30 Aの値であります

0を返します。

}

        実装の結果は以下のとおりです。

        30 20

20 30


パラメータとして変数の一般的な機能は、渡されたパラメータは、変速機の値が一方向です。パラメータ値の変化の関数の実行中にした場合、引数には戻りません。関数を呼び出すとき、パラメーター、および引数が同じメモリセルではありませんので。

パラメータの参照伝達関数を使用している場合、それはメモリ内の引数のコピーを生成しなかったが、操作の引数を指示します。パラメータの可変伝達関数は、関数呼び出しが発生した場合、それは記憶部パラメータを割り当てる必要がある場合、通常、変数、パラメータ、引数変数のコピーであり、オブジェクトが渡された場合、コピーコンストラクタを呼び出します。このように、データの伝送パラメータは、一般的な変数によって渡されたパラメータを参照してより効率的に大きい、より少ないスペースを占有します。

実行され、それは非常に簡単です、それは参照の使用と同じ効果を得ることができますが、パラメータとしてポインタを使用しますが、「*ポインタ変数名」操作の形で機能メモリと呼ばれる同じパラメータ割り当て部、および再利用する必要性を与えますエラー及び乏しい手順を読み取り、一方、呼び出し元の関数を呼び出す時点で、変数のアドレスは、非常に便利ではない引数として使用されます。

しばしば引用されました

我々はプログラムの効率を改善したい場合は、だけでなく、関数に渡されるデータは、機能が変更されていない、あなたは一定の基準を使用する必要があります。

宣言的にしばしば引用されています。

                             const型識別子の参照名=&特定の変数名。

このように、基準のではなく、ターゲット変数の値を参照することによってステートメントは、それによって安全基準を確保し、const型操作であると、プログラム内のターゲットの参照が変更されます。

 

おすすめ

転載: www.cnblogs.com/xiongweiLi/p/12345622.html