- ベストアンサー
ポインタのメリット
miyaneya0の回答
- miyaneya0
- ベストアンサー率17% (10/56)
ANSI標準ライブラリ関数で文字列処理関数は、引数や戻り値がポインタ変数だったりするのでよく使います。
関連するQ&A
- ポインタを使うことのメリットとは??
こんばんは、Cの初心者です宜しくお願いします。 Cでポインタの記述を良く見るのですが、色々と本とかサイトとかで調べましたが、ポインタを使うことのメリットとか、使う理由を書いてるものに巡り合いません。 一体何故ポインタというものがあるのでしょうか。 変数(アドレス)を参照する事で、メモリの節約とか動作が速くなるとか、そのようなものが主な理由でしょうか。 逆にポインタを使わないと書けないプログラムとかはあるのでしょうか。 関数は、ポインタを引き数として元から設計されているので仕方がないとしても、、、、、、 以上初心者としての非常に素朴な疑問です、宜しくお願いします。
- ベストアンサー
- C・C++・C#
- ポインタの基礎について
Cのポインタに関して、質問されて答えられなかったものがありまして、お尋ねしたいと思います。 long型の変数へのポインタは[ ]型 char *型の変数へのポインタは[ ]型 このような[ ]に入る語句が分からないです。 教えて下さい!!
- ベストアンサー
- C・C++・C#
- ポインタに含まれる情報は [C言語]
ポインタに含まれる情報は代入した変数のアドレスですが、アドレス元の変数の大きさは含まれないのでしょうか?ポインタの中の情報を見てみても、参照できる変数が使用しているメモリの先頭アドレスしか入っていません。変数の大きさはどうやって知るのでしょか?回答よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 【なぜポインタを使うのか】
私は、ポインタのメリット・デメリットを以下のように考えています。 ◆メリット メモリを多く確保しなければならないオブジェクトについて、コピー処理を行うことなく省メモリでインタフェースできる。 ◆デメリット ・関数内でしか使用しない非ポインタのローカル変数に比べ、 アクセス可能な場所が多くなってしまい、色んな箇所から値が変更されうる。(影響範囲の限定がしずらい) ・可読性が低くなる。(若いエンジニアはCの経験者は少なくっていくと思われるため、保守コストが若干割高になる) そのため、よっぽどメモリを多く使うようなオブジェクトでなければ、 (もしくは速度を重視する必要があるプログラムでなければ) 値渡しにしても良いのではと考えています。 しかし、度々目にするソースは、何でもかんでもポインタで処理しているものも多々見受けられます。 特に、int型のようなメモリを大量に使用しないものでも、ポインタで変数宣言しているケースもよく見ます。 なぜなのでしょうか? (熟練のC言語プログラマが、昔ながらの記述を踏襲しているというのはあるのかなと考えていますが)
- ベストアンサー
- C・C++・C#
- ポインタのポインタが引数にある関数の使い方。
ポインタのポインタが引数にある関数の使い方。 現在、このポインタのポインタが引数にある関数の動きがわからず困っています。 int test(int ** head) { int * pTail = (int *)*head; pTail = pTail + 1; } もし、この関数を呼び出して使用した場合どのような動きをするのでしょうか? int * comm_msg; これをグローバルポインタ変数として宣言させて、 test((void **)&comm_msg); このように呼び出したとした場合とさせていただきます。
- ベストアンサー
- C・C++・C#