送信パラメータ値またはカスタムC ++の機能上のアドレスと、

ゼロディレクトリ

  • 準備
  1. 実際の参加パラメータ
  2. グローバル変数
  3. (また、ローカル変数として知られている)非グローバル変数
  • 二つまたはトランスポート・アドレス値
  1. 転送値
  2. トランスポートアドレス
  3. コントラスト
  • トライサービスの一般的なコード

準備

- 説明します。このモジュールに関連する概念を説明。

参加本当のパラメータ

パラメータ:であり、「仮パラメータ」は、関数名を定義するパラメータであり、関数はその使用され、目的は、他のコール機能コード断片に渡されたパラメータを受信しますたとえば、関数を定義するint cgz(int n, int m);ここで、n、mは送信のみ、受信し引数の値、「空の」であるパラメータです。または仮パラメータに渡された引数の値が空白で......塗りつぶしであること?

引数:「実際のパラメータが」され、あなたが呼び出す関数に渡されるパラメータであることを呼び出される関数に渡された値ですたとえば、2つの変数、Bの主な機能を定義し、MAX()関数のC ++標準ライブラリの次の行を書き、あなたは書いてmax(a, b);、A、Bは、引数であるとき、彼らは彼らの値がMAX()関数の処理に転送されて入れ、その後、最大値を返します。

2つのグローバル変数

定義プログラマは、パラメータ文で書いていないいくつかのカスタム関数、。このように:

void example( );
             ^无形参
或:void example(void);
                 ^^^^无形参

プログラムは、計算機能で処理する場合は次に、グローバル変数を使用するのが一般的です。

A&Q
Q:それでは、それはグローバル変数であることを意味するのでしょうか?
A:グローバル変数であり、単純なポイント(メイン関数を含む)任意のカスタム関数にその定義を確認し、任意の関数の外部で定義されていない変数。

例えば、このプロセスは、変数が述べ定義における(メイン関数を含む)は、任意の定義された関数ではないが、これはグローバル変数です。

#include<bits/stdc++.h>
using namespace std;
int a; //在所有自定义函数(包括主函数)之外定义。
int by_myself(void){
	return a - 1; //别误会,这只是用到了a,不是在这个函数中定义的。
}
int main(){
	a = by_myself(); //调用自定义函数。
	return 0;
}
注:程序中有些地方尚未讲解,下面会涉及到。

3非グローバル変数(ローカル変数としても知られます)

また、内部変数としても知られている(また、ローカル変数としても知られている)非大域変数。ローカル変数は、定められた関数で定義されていますその範囲は、その定義された関数内に限定され、この変数を使用すると、違法である前に、機能を残します。
以下のことを理解するためのコードを見てください:

int example(int a){
	int b,c;
	…… //若干个操作处理语句
}a,b,c作用域

B、ローカル変数C;このコードは、これは内部関数と呼ばれることができるパラメータです。

第二の伝送値またはアドレス

数値トランスミッション1

上記のパラメータは、実際の参加を説明するときに通知がある場合は、引数独自のカスタム値は、パラメータの関数に転送されますかこれは、呼び出される関数のパラメータの送信に呼び出す関数の引数の値(これはあなたが何回も読むことができ、発音するのは難しいビットであってもよい、私たちが知ってもらう必要があり、非常に重要である)
、実際の参加パラメータに、上記の、非常に明確で、ここではそれらを繰り返すありません。

2トランスポート・アドレス

最初の例:

#include <iostream>
using namespace std;
void Add1(int *a) {
	(*a) ++;
}
void Add2(int a) {
	a ++;
}
int main() {
	int x = 1, y = 5;
	Add1(&x);
	Add2(y);
	cout << x << " " << y << endl;
	return 0;
}
输出:
2 5

この2つの機能が追加されているので、ADDLはADD2は渡された値であり、ポインタが渡されている
(以下、2つの非常に重要な)

ADDL(&x)は、intへのシステム第1の構成ポインタを呼び出すときに、引数のアドレスがので、この時間Aで、渡されたポインタAをXと&Xときに内部アドレスに、すなわち、統一されたデータを共有し、同一のアドレスを指していますデータを操作する、xは作動します。場合++天然にX ++、関数呼び出しが終了すると、解放されたポインタは、このときのxの値が変更されたとき。

この方法は作品に「バンドル」されている2つのデータを置くことであるということができます。

システムを構築するために、ADD2(y)を呼び出すときはint型の変数であり、その値yがに送信される(この場合、2つの変数であり、yおよび異なるアドレスが、両方が同じ値を有する)、および++、その後、Yが、そのための関数呼び出し、Yのリリース後とそのままアクションなし、。

この方法は、主に次の内部動作およびサービスの機能である主な機能に影響を及ぼしません。

3比較

これは、両者の差であるポインタ型のアドレスを渡すパラメータ数値伝達関数は「知っている」値への呼び出しを行うために、単純です

転送の種類の選択は、このプログラムの具体的な目的や機能に依存して、転送のアドレスを使用するように変更するための一般的なパラメータが、唯一の他のデータパラメータを呼び出すには、それ自体が通過する適切な値を変更する必要はありませんデータを算出しました。

合計コード

//cpp
#include<bits/stdc++.h>
using namespace std;
int n = 6; //全局变量n,在所有自定义函数(包括主函数)之外定义。
int by_myself(void){ //无形参
	return n - 1; //别误会,这只是用到了n,不是在这个函数中定义的。
}
void Add1(int *a) { //地址传输
	(*a) ++;
}
void Add2(int a) { // 传输数值
	a ++;
}
int main(){
	int x = 1, y = 5; //定义局部变量 x, y
	n = by_myself(); //调用自定义函数。
	Add1(&x);
	Add2(y);
	cout << n << " " << x << " " << y << endl;
	return 0;
}
输出:
5 2 5
リリース元の4件の記事 ウォンの賞賛6 ビュー907

おすすめ

転載: blog.csdn.net/qq_45698847/article/details/105214270