(免責事項:C++のポインタは非常に人気のあるトピックなので、私の前の誰かがすでにこの点を挙げていると信じられていますが、別の参照を見つけることができませんでした。私が間違っている場合はこのスレッドを閉じてください)"address of array"の実用的なケースは何ですか?
私は、配列の最初の要素へのポインタと配列自体へのポインタを区別する多くの例を見てきました。
//pointers to arrays
#include <iostream>
using namespace std;
int main() {
int arr[10] = {};
int *p_start = arr;
int (*p_whole)[10] = &arr;
cout << "p_start is " << p_start <<endl;
cout << "P_whole is " << p_whole <<endl;
cout << "Adding 1 to both . . . " <<endl;
p_start += 1;
p_whole += 1;
cout << "p_start is " << p_start <<endl;
cout << "P_whole is " << p_whole <<endl;
return 0;
}
出力::ここで一つのプログラムとその出力です
だからp_start is 0x7ffc5b5c5470
P_whole is 0x7ffc5b5c5470
Adding 1 to both . . .
p_start is 0x7ffc5b5c5474
P_whole is 0x7ffc5b5c5498
、予想通り、両方に1を加算することは、異なる結果が得られます。しかし、私はp_whole
のようなもののための実用的な使用を見失う。 arr
を使用して取得できるアレイブロック全体のアドレスを取得したら、そのようなポインタを使って何ができますか?
で対
C + +の代わりに配列への参照を使用することができますので、使用はありません。配列への参照は非常に便利です(例:名前に基づいて配列の次元を取得する標準的な実装)。 –