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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- デスクトップパソコン 全画面表示でもタスクバーを前面に隠す、表示させるようにしたい 3 2022/03/23 12:30
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- 学校 専門1年生です。私は1ヶ月近く学校の違反駐車をしていました。今日駐車場の係のクラスメイトから連絡が来 2 2022/05/09 21:02
- 友達・仲間 いい人ほど嫌われるのは何故でしょうか 25 2023/03/24 14:21
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
- その他(悩み相談・人生相談) 将来伸びる高校生って? 1 2022/05/14 14:39
- その他(法律) これは、出資法違反だかってのに該当しますか? 2 2022/07/03 19:02
- その他(悩み相談・人生相談) 何を言えば、借金の心配はない!と言えますか 1 2022/10/06 17:34
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
VBでC言語のポインタみたいな使い方?
Visual Basic(VBA)
-
VB.netでDLLを読み込んで実行する際に、スタックを不安定にしていますというエラーが出ます。
Visual Basic(VBA)
-
VBで動的なメモリの確保
Visual Basic(VBA)
-
-
4
構造体配列を引数とするDLL作成し、VBで呼ぶには?
Visual Basic(VBA)
-
5
DLL<->VB間での受け渡し(文字列・ポインタ)
Visual Basic(VBA)
-
6
GetPrivateProfileStringでiniファイル読込む処理を詳しく知りたいのですが・・・
C言語・C++・C#
-
7
VB6でポインタ?
Visual Basic(VBA)
-
8
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
戻り値で構造体を返すことは可...
-
C言語のポインタに直接アドレス...
-
参照型で受け取った引数をポイ...
-
構造体の削除について
-
デバイスハンドルとは?
-
ExcelVBAでのkernel32(64bit)
-
c言語のエラーについて
-
LPSTR型の初期化について
-
コンストラクタやデストラクタ...
-
C言語 ポインタと配列の違い...
-
fopne で失敗する原因
-
スコープ外でのアドレスの参照...
-
TCHAR文字列内の検索について
-
NULLポインタは0と書かなければ...
-
C++ vectorのbeginについて
-
C言語でのconstを返す関数
-
関数ポインタの高速化のメリット
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
fopne で失敗する原因
-
戻り値で構造体を返すことは可...
-
LPSTR型の初期化について
-
ExcelVBAでのkernel32(64bit)
-
参照型で受け取った引数をポイ...
-
ハンドル、アドレス、ポインタ...
-
ハンドルはポインタか
-
C言語でのconstを返す関数
-
デバイスハンドルとは?
-
Cで作成したDLL関数をVBから呼...
-
popenした子プロセスのプロセス...
-
c言語で任意のファイルから読み...
-
[excel vba] マウスポインタの...
-
パスからファイル名を抽出
-
プーさんのマウスポインタを教...
-
基本アルゴリズムの『返す』の...
おすすめ情報