スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
.-- -- スポンサー広告 comment(-) trackback(-)

C語メモ書き:ポインタとは

ついにポインタの領域に突入です

ポインタが使えるようになると、作れるプログラムの幅も飛躍的に広がるのだとか。。。

ま、最初は軽く復習から。

コンピュータの大事な特徴の一つ。

メモリ

メモリはコンピュータの中で一時的に記憶するための部品。

で、メモリ上に格納されたデータは全て、アドレス(address)を持っています。

コンピュータが自動的にデータの格納場所を決めるので、

「このseq(変数)さんはどこにいますかね?」

って、コンピュータに聞かないといけない。

で、この問い合わせには「&演算子」を使うと!

格納しているデータのサイズによって使用されるメモリも変わるから

seqさんのアドレスが1001

でも、データのサイズが大きければ

隣にいるalnさんのアドレスは1004とかになるっていうのはOK


で、ポインタはコード上で指している先のデータ型を区別して表記するので

int型を指すポインタなら

int*  ptr

と書きます。

int  *ptr

とも書けます。

で、このように宣言すると、変数ptrにint型を指し示すためのアドレスが代入できる、

で、ポインタ型に使う演算子には

変数名からポインタを取得する「&演算子」の他に

取得したポインタを使ってアドレスに格納されたデータをやりとりする「*演算子」があります。


ひらったく言うと

seq = &gene_01

では、gene_01のポインタ(データサイズを考慮したアドレス;例1004)が

ポインタ変数seqに代入される。

*seq = atgc

では、ポインタ(1004)を参照してそこに代入する。

つまり、gene_01にatgcが代入されるので

gene_01へのアクセスが他にも出来るってことみたいね。

で、

printf関数を使うときは「%p」で表示。
.29 2010 C語:ポインタ comment0 trackback0
 HOME 

プロフィール

emi

Author:emi
日々、コンピューターとにらめっこしていた2010。
公の仕事に就くことを目指して教科書とにらめっこ2011,spring。
はたして2012は・・・

最新トラックバック

検索フォーム

ブロとも申請フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。