2016-09-29 5 views
-2

こんにちは、私はポインタについての質問があります。どのように私はポインタのメモリをC++で割り当てるのですか?タイプを割り当てる場合と同じようにnewキーワードを使用できますか?また、変数を渡す代わりにC++でポインタを使う利点は何ですか?それはプログラムの効率を高めますか?C++でどのようにポインタを割り当てることができますか?

+0

生ポインタはまったく使用しません。 C++にはあなたのニーズをカバーする[スマートポインタ](http://en.cppreference.com/w/cpp/memory)と[コンテナクラス](http://en.cppreference.com/w/cpp/container)があります動的メモリ管理 –

+0

これらのすべての答えと他の質問は、C++用の良い教科書の中でほとんど見つけることができます。 – Slava

+0

ここで私の前提に同意しない人もいますが、自分の経験や疑問に基づいて、まずCで作業しても問題は解決しません。いったんCをよく知っていれば、難易度が5〜10倍であると推定されるC++を実行することができます。私はKernighanの本からCを学んだが、Cの本はどんなこともするだろう。まともなC本の2ヶ月後にC++に戻ってきてください。 C++は驚くほど強力ですが、驚くほど難しい獣です。 Cのほとんどの書籍はUnixライクな環境を想定しているので、Windowsコンパイラでの学習は避けてください。がんばろう! –

答えて

3

私はポインタをC++でどのように割り当てるのですか?

ローカル変数、グローバル変数または静的変数、または(直接的または間接的な)動的割り当てのいずれかで、他のオブジェクトのメモリを割り当てるのと同じ方法です。たとえば、あなたが機能で、このどこかを記述した場合:(あなたがそれを割り当てるまで、しかし特になしint

int* pointerToInt; 

それは、intに地元のポインタを宣言します。

タイプを割り当てるときと同じようにnewキーワードを使用できますか?

(ポインタはオブジェクトなので)他のオブジェクトを作成するのと同じ方法でポインタを作成できます。それはnewを使用しています

int** pointerToHeapAllocatedPointerToInt = new int*; 

また、C++ではだけではなく、変数を通過するのポインタを使用する利点は何ですか?

ポインタは変数とは異なることを行います。家の代わりに家の住所を使う利点は何ですか?まあ、私は他の人に私の家アドレスを与えることができますが、私は彼らに私の家を与えることはできません。しかし私は私の家の住所で寝ることができません。

プログラムの効率が向上しますか?

いいえ、それを減らします。
場合によっては、それを代替品よりも少なくします。

関連する問題