ホームページ >Java >&#&チュートリアル >C++ リファレンスとポインターの概要
Python や JavaScript などの高級言語と同様、PHP も C/C を介して拡張関数を作成できます。ここでは、単純な PHP 拡張機能を構築する方法と、サードパーティの DLL ライブラリを呼び出す方法を共有します。
C 言語ポインター
私はポインターを学び始めたとき、とても混乱していました。メモリの観点から見た仲介者の役割は、データを格納するために使用されるポインタ空間のアドレスです。
#include<stdio.h>void add_1(int num) { num++; } void add_2(int *num) { (*num)++; }int main() { int number1 = 1,number2 = 1 ; add_1(number1); add_2(&number2); printf("%d\n",number1); printf("%d\n",number2); return 0; }
number1 の値は変更されず、number2 は 1 増加し、パラメータは add_1 に渡されます。 () これは、スペース を開いて、number1 の値をスペース にコピーすることと同じです。コピーされた値に対して実行されるすべての操作は、元のデータには影響しません。 add_2() で渡されるパラメータは、number2 の アドレスを格納するためのスペースを開くための です。num に対するすべての操作は、number2 に対する操作と同じです。
c 引用
以下のコードは、いくつかのシンボルが変更されているだけで、上のコードとほぼ同じですが、効果は同じです。
#include<iostream>using namespace std;void add_1(int num) { num++; }void add_2(int &num) { num++; }int main() { int number1 = 0, number2 = 0; add_1(number1); add_2(number2); cout << number1 << " " << number2 << endl; return 0; }
c 参考として、 は、number2 にエイリアス を与えます。number2 のメモリ アドレスは、実際にはメモリに格納されますが、コンパイラによって別名が付けられます。そして、私がコンピューターサイエンスを理解している限り、限界は、物事を組織する異なる方法が異なるコンピューターアーキテクチャにつながるということです。
3. 戻り値としての c 参照
#include<iostream>using namespace std;int n = 3;int& func() { return n; }int main() { int num; num = func(); cout<<num <<endl; return 0; }
関数は n への暗黙的なポインタを返しますが、参照する必要があるオブジェクトはスコープを超えてはなりません。つまり、それはスコープに依存します。変数が機能するかどうかについて 関数本体内では、上記のようなグローバル変数を参照できますが、func 関数内に配置した場合は参照できません。
4. c 参照とポインターのいくつかの違い
ポインターはヌル ポインターにすることができますが、参照は正当なアドレス空間を指している必要があります。
ポインターは、あるオブジェクトから別のオブジェクトを指すことができますが、参照が初期化されると、オブジェクトを変更することはできません。
ポインタはいつでも初期化できますが、参照は作成時に初期化する必要があります。
関連する推奨事項:
静的ローカル変数を通じて C を確認します。 C、C#、Java、PHP
以上がC++ リファレンスとポインターの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。