A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
ものすごくおおざっぱな言い方をすると、
「変数のポインタを渡す」は、「変数を参照渡しする」
と一緒と考えていいんじゃないかと思います。
そう置き換えると、たいがいの話が通じるんじゃないかと。
No.4
- 回答日時:
No.3さんの回答のとおりのようですね。
たぶん、先輩はCかC++の言語がメインなので「ポインタ」という単語が出たのだと思えます。ちょっと調べたところ、VB6からVB.NETに変わるとき、ポインターの概念よりもさらに難しいと思えるクラスライブラリが追加されています。となると、アセンブラ等を触ってポインターが理解できたとしても、さらにクラスの考え方と使い方を覚えないといけないのですね。
WindowsがMacの真似をして進化するように、VBやJava,C#はC++で成功した仕様を遅れて取り込もうとしていますので、本家であるC++を勉強すればVB.NETの仕様も理解しやすい気もします。(C++を真似た仕様の取り込みはあまり成功しているようには思えませんけどね。なんか複雑さが増すばかりのような・・・)
最近、C++の本を読んでいると、「最近は、言語仕様とか文法を覚えるだけでは、ほとんど役にたたない。ライブラリやクラス、テンプレートの使い方をマスタすることが必要だ」というようなことが書かれていました。そして、実際に使わないと覚えることはできない、とも。
とはいっても、ポインターの概念は大切ですので、頑張ってマスターしましょう。
P.S.
C言語の解説に「配列はポインタと同じようなものだ」という説明がしばしばあります。でも似ているけど違います。このあたりの解説はアスキー出版の「エキスパートCプログラミング--知られざるCの深層/\3,107」の説明が分かりやすいです。お勧め!
No.2
- 回答日時:
昔のVBは触っていましたが、最新のVB.NETは使っていませんけど・・。
基本的には、VBではポインターを使うコーディングは使えなくはないにしても使いにくいし、そもそも、そういうコーディングはしないのが普通ではないでしょうか?また.NETでは、直接ポインターを操作することはC#でも禁じ手(使えないことはないが面倒な手順が必要)なので、わからないのも無理ないと思えます。ポインタで処理すれば、データ本体のコピーをすることなく、データの収容されたメモリアドレス先頭位置さえ渡せばいいため、1GBの巨大データもアドレス情報の受け渡しだけで済むので処理速度で大いに有利です。
ただ、クラスで処理するってことは、目に見えないところでポインターを使いまくっていることです。(Javaもそうですね)ですので、もしかすると、先輩の言うようなポインターを活用した手法があるのかもしれません。
でも、ユーザにプログラムでポインターをコントロールさせるっていうことは、.NETシステムのコンセプトを根底から崩すことになる気がしますので、知らないほうがいいのかもしれませんね。
ちなみに、ポインターを理解するには8bit系CPUのアセンブラ言語を勉強するのが一番です(16bit系以上は難しいので)。あるいは、C言語のソースと、Cのコンパイラーオプション指定で得られるアセンブラーソースを対比して調べるのもいいと思います。
No.1
- 回答日時:
ポインタ 用語で、検索すると良いでしょう。
下記は、あるサイトからの抜粋です。
内容を読んでも難解なことばかりですね。
遠慮せず上司や先輩に聞きましょう。
質問できるのは、いまのうちですよ。
時間がたってからは、質問し辛いですよ。
ポインタとは
プログラミング言語において、ある変数の内容が格納されている場所の位置情報を保持する変数。C/C++言語におけるポインタは、メモリ空間内のアドレスをそのまま数値として保持している。
C/C++言語では、関数の引数としてポインタを渡すことで(参照渡し)、関数内でポインタの指し示す変数の内容を直接書き換えることができる。またポインタをインクリメントしながらその指し示す場所へアクセスすることで、変数が連続して記憶されているデータ構造(配列)を実現することができる。他にも、データ構造体に次のデータ構造体の位置情報を持たせることによってデータ構造体を連結させた連結リスト構造や、その他の複雑なデータ構造を実現する上でもポインタは不可欠である。
C/C++言語では、関数の実行コードが格納されている場所もポインタ(関数ポインタ)として扱うことができる。これを利用して、ある関数に別の関数を指し示すポインタを引数として渡し、渡した先でその関数を実行するというテクニックが使える。
C/C++言語においてはポインタを使うことでプログラミングの自由度が高くなる反面、実行コード領域を含めたあらゆるメモリ領域にポインタを用いてアクセスできてしまうために、バッファオーバーフローなどによって予期せぬ不具合を生む原因ともなるため、注意して使う必要がある
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
家の中でのこだわりスペースはどこですか?
自分の家で快適に過ごすために工夫しているスペースはありますか? 例)ベランダでお茶を飲むためのカフェテーブル ゲーミングに特化したこだわりのPCスペース
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
VBでC言語のポインタみたいな使い方?
Visual Basic(VBA)
-
VB.netでDLLを読み込んで実行する際に、スタックを不安定にしていますというエラーが出ます。
Visual Basic(VBA)
-
VBで動的なメモリの確保
Visual Basic(VBA)
-
-
4
DLL<->VB間での受け渡し(文字列・ポインタ)
Visual Basic(VBA)
-
5
VB6でポインタ?
Visual Basic(VBA)
-
6
構造体配列を引数とするDLL作成し、VBで呼ぶには?
Visual Basic(VBA)
-
7
GetPrivateProfileStringでiniファイル読込む処理を詳しく知りたいのですが・・・
C言語・C++・C#
-
8
Cで作成したDLL関数をVBから呼び 引数渡し方法
Visual Basic(VBA)
-
9
CloseとDisposeの違い
Visual Basic(VBA)
-
10
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でのconstを返す関数
-
_TCHAR、LPCWSTRについて
-
セグメントエラー
-
いまc言語を独学で勉強している...
-
ExcelVBAでのkernel32(64bit)
-
ReadFileの読み込みエラーについて
-
ポインタのミスでOS壊れるの...
-
C言語 ポインタと配列の違い...
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
C言語 配列の長さの上限
-
配列の要素数に変数を入れたい...
-
C# Listを使わずに2次元配列の...
-
C言語のプログラムについてです
-
ヒープメモリの解放について
-
C言語の2次元配列 容量が大き...
-
関数から配列を返すには?
-
define で 配列
-
配列で格納したものをmsgboxで...
-
構造体のextern方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
fopne で失敗する原因
-
戻り値で構造体を返すことは可...
-
LPSTR型の初期化について
-
ExcelVBAでのkernel32(64bit)
-
参照型で受け取った引数をポイ...
-
ハンドル、アドレス、ポインタ...
-
ハンドルはポインタか
-
C言語でのconstを返す関数
-
デバイスハンドルとは?
-
Cで作成したDLL関数をVBから呼...
-
popenした子プロセスのプロセス...
-
c言語で任意のファイルから読み...
-
[excel vba] マウスポインタの...
-
パスからファイル名を抽出
-
プーさんのマウスポインタを教...
-
基本アルゴリズムの『返す』の...
おすすめ情報