C++ リファレンスとポインターの概要

坏嘻嘻
リリース: 2018-09-14 17:06:07
オリジナル
1730 人が閲覧しました

Python や JavaScript などの高級言語と同様、PHP も C/C を介して拡張関数を作成できます。ここでは、単純な PHP 拡張機能を構築する方法と、サードパーティの DLL ライブラリを呼び出す方法を共有します。

  1. 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;
}
ログイン後にコピー


C++ リファレンスとポインターの概要

number1 の値は変更されず、number2 は 1 増加し、パラメータは add_1 に渡されます。 () これは、スペース を開いて、number1 の値をスペース にコピーすることと同じです。コピーされた値に対して実行されるすべての操作は、元のデータには影響しません。 add_2() で渡されるパラメータは、number2 の アドレスを格納するためのスペースを開くための です。num に対するすべての操作は、number2 に対する操作と同じです。

  1. 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++ リファレンスとポインターの概要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 を使用して PHP 拡張機能を作成する

静的ローカル変数を通じて C を確認します。 C、C#、Java、PHP


の機能

以上がC++ リファレンスとポインターの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!