- 【QBASIC互換!?】FreeBasic【GPL】
630 :デフォルトの名無しさん[sage]:2016/09/11(日) 01:00:30.75 ID:Q4IAW6Rr - >>626
ポインタ型は、メモリ上のアドレスを格納する型 dim a as integer = 100 dim pa as integer ptr = @a print pa print *pa とした場合、変数aはコンパイラにより自動的にメモリ上にinteger型の領域を確保され、100が代入される 2行目は、その確保されたアドレスを変数paに格納している @aはaddress of aって意味 3行目は、変数paが指し示すアドレスを表示する 4行目は、ポインタが保持するアドレスにあるinteger型の値を取得して、値の100が表示される *paはvalue of paって意味 実体と言ったのは、ポインタが指し示したアドレス先にそれが示す値が格納されているから 通常、newやallocateでメモリ領域を確保し ポインタ型にそのアドレスを格納し、処理後にdeleteやdeallocateでメモリを開放する 普通の変数宣言は、コンパイラがメモリの確保と開放をスコープ基準でやってくれるが ポインタ型の変数宣言はプログラマ自身がメモリの確保と開放を動的に行うためにある FreeBASICはBASICの構文を使用するけど、その形態はC言語に近い ポインタに関して詳しく知りたいなら、C言語を調べてみると良い(mallocやfree) FreeBASICはC言語よりポインタの記述に関しては分り易く出来てる
|
|