ポインタ
このカテゴリーの記事(新着順)
リンクリストの場合、要素を検索したり追加する際に、目的とする要素を1つずつ確認する必要があるため時間がかかります。 ツリーというデータ型を使用すると、比較の回数を減らせ速度アップとなります。 ツリーはノードから構成され、先頭のノードがルート...
日時: 2008年06月18日 00:14
二重リンクリストは、next_ptr(次の要素を指すポインタ)と、もう1つprev_ptr(前の要素を指すポインタ)を持ちます。 シングルリンクリストは、リンクリスト - C言語とC++入門勉強ルームに書いたとおりですので、これを改造した二...
日時: 2008年06月17日 22:54
リンクリスト - C言語とC++入門勉強ルームでは、リンクリストの先頭に要素を追加する方法を考えました。 次は、リンクリストの途中の指定した箇所へと、要素を追加する方法です。 リンクリストが3つの要素からなり、数が小さいほうから大きいほうへ...
日時: 2008年06月17日 22:24
リンクリストとは、配列よりもより柔軟なデータ構造です。 各項目が次の項目をポイントするという風に、項目が数珠繋ぎになったデータ構造のことを指します。 リンクリストのデータ構造をクラス宣言で表すと・・・ #include <iostre...
日時: 2008年06月17日 18:34
new演算子がヒープ領域からメモリを割り当てるのに対し、delete演算子はメモリをヒープ領域に解放します。 通常のオブジェクトの場合 delete ポインタ; ポインタ = NULL; newで配列を割り当てた場合 delete [] ポ...
日時: 2008年06月17日 13:14
以下のような、profクラスの配列を作成しようとすると、メモリを静的に割り当てることになり領域を使いすぎてしまいます。 そこで、動的にメモリ割り当てを行うために、new演算子を用いてオブジェクト生成を行います。 演算子newは、変数を格納す...
日時: 2008年06月17日 13:08
これまでと同じ方法でポインタを宣言するには、ポイント先に名前つきの変数を用意して、ポインタを使用します。 int value; int *value_ptr; value_ptr = &value; この場合のvalue_ptrは、...
日時: 2008年06月17日 10:28
構造体の配列もポインタで扱うことができ、配列の場合と同様です。 #include <string> #include <iostream> struct profile { std::string nam...
日時: 2008年06月10日 19:12
reinterpret_cast(再解釈キャスト)は、ポインタ型をint型の整数に変換したり、int型の整数をポインタ型に変換したり、ある型のポインタを別の型のポインタに変換したり、などのキャストを行う構文です。 reinterpret_c...
日時: 2008年06月10日 18:59
配列とポインタ・アドレスのインクリメントを確認 - C言語とC++入門勉強ルームで、「array + 1」で配列のメモリアドレスをインクリメントできることを確認しました。 C++では、ポインタと配列を同じように扱うことができます。 arra...
日時: 2008年06月10日 14:17
C++では、ポインタの加算や減産など、ポインタを算術演算することが可能です。 ポインタは、メモリアドレスを保持する変数に過ぎないので、当たり前ですね。 文字型の配列とポインタ #include <iostream> cons...
日時: 2008年06月10日 12:49
ポインタの出力がどうなるか、実験して確認してみました。 #include <iostream> int main() { int a = 5; int *a_ptr = &a; std::...
日時: 2008年06月10日 12:22
定数のポインタを宣言する場合、すこし難しいです。 定数宣言 まずは、定数の宣言を考えます。 const int data = 5; data = 10; // dataは定数なので、変更は許可されな では、ポインタを定数で宣言する場合...
日時: 2008年06月10日 11:55
ポインタとは ポインタとは、変数のアドレスを保持する変数のことです。 このことから、ポインタはアドレス変数とも呼ばれます。 アドレスとは、メモリ上にある番地(場所を表す)のことであり、変数のために確保された領域を表します。 int a = ...
日時: 2008年06月10日 10:33