2012-01-24 22 views
8

私はC++の平均的なプログラマであり、通常はポインタをすべてのコストで避けます。しかし、私は最近、いくつかのAPIを使い始めました。正直なところ、APIの作者が意図する/暗示しているのと同様の経路を続けていくと、よりうまくいくように見えます。C++では、Excelワークシート内のセル参照のようなポインタですか?

フォームと関数ではありますが、明らかに構文ではありません - 「ポインタ」はMicrosoft Excelの「セル参照」に類似していると見なすことができますか?

私はMicrosoft ExcelでVBで数年間の経験があります。私はExcelの使い方については、 "Formula/Reference Junkie"のようなものでもありますので、この思考の列はちょうど私にとって意味があります。私はちょうど私が正しい方向に「指差し」しているかどうかを知りたい。

ありがとうございました!

+2

申し訳ありませんが、あなたがポインタについて混乱している場合は、平均的なC++プログラマーではありません。しかし、続ける! C++は、コンピュータサイエンスについて多くのことを教える素晴らしい言語です。 – log0

+1

@Ugo - 単一のポインタを使用することなく、便利で効率的なコードをC++で書くことができます。共有する意味のあることがなければ、自分のビジネスに気を付けることもできます。 – tahwos

答えて

9

Excelでのセル参照は、ブック内の特定の場所を示す文字列です(特定の状況では、別のブック)。

C++のポインタは、のメモリアドレスです。メモリアドレスは、仮想RAMの特定の場所を特定する番号です(これ以上はありません)。

はい、実際にはかなり似ています。私は、あなたのパレードで、二つの違いがあると話して、雨の降る準備をしました。しかし、アナロジーは機能します。

ポインタを参照解除すると、そのポインタが示すメモリ内の場所に移動します。 Excelでは、実際にはセル参照を「逆参照」しません。しかし、十分に近い。

int y = 4; int* x = &y;と言うと、それは「4」を含むB1にセルを作成した後、「= B1」を含む別のセルを作成するようなものです。

+0

あなたの返信の最後の文は、私が最初にこのように考えるようになったのです。なぜなら、私はそれをいつも( "= B1")行うからです。あなたの返信の2番目の文は、私の質問を促す私の "曖昧さ回避"のようなものです.Excelでのセル参照は、ワークシートの特定の場所を特定する数字と文字です。 <<私の類推があります。私はあなたの答えが好きです、ありがとう! – tahwos

+0

セル参照を名前付き参照と見なします。 Excelコードには、これを実際のセル参照、可能なシグネチャに変換する関数があります: 'Cell * locateRef(char const * ref)'。この名前付き参照はスプレッドシートドメインにありますが、ポインタ参照はメモリドメイン内にありますが、両方とも同じものを参照しています。 –

+0

@ edA-qa mort-ora-y、それは文字通りそれほど意味はありませんでしたが、入力に感謝します。 – tahwos

0

私はそれは妥当な類推だと思います。

0

ポインタは何か(または何も保持しない)のメモリのアドレスです。

セルに実際にデータが含まれているかどうかにかかわらず、そのアドレスは、セルのポインタとして考えることができます。

セル自体はポインタではありません。

1

私は最初にコンピュータプログラミングを学んだときの古典的なものが、郵便室の郵便箱でした。 Tom、Dick、Harryというメールボックスを想像してみてください。トムのメールボックスに

  • 、宝物はハリーのメールボックスでハリーのメールボックス
  • であると言う封筒を置き、ディックのメールボックスにディックのメールボックス
  • での手掛かりがあると述べている封筒を置きます、あなたは$ 100ドルを置く!イッピー!

コンピュータプログラミングでは、Tom、Dick、Harryはすべてメモリアドレスです。最初の2つはポインタを含み、3番目のポインタは数値を含みます。 TomまたはDickのメールボックスで封筒を開くことは、ポインタの逆参照に似ています。

私たちは、この書き込み:トムはハリーへのポインタへのポインタであるが**トム== * ==ディックハリー== 100 、そう

int harry = 100; 
int *dick = &harry; 
int **tom = &dick; 

を。 そして、ディックはハリーへのポインタです。

0

いいえ、実際はありません。ポインタはインデックスを付けることができ、無効にすることもできますが、Excelセルではこれらのことはどちらも当てはまりません。

+0

両方がExcelに該当します。 セルの範囲、または単一のセルの内容によってもインデックスを作成できます。 無効なセル参照はエラー(#VALUE!、#DATA!など)として表示されます。 – tahwos

関連する問題