ポインタとprintf関数についての初歩的な質問
Posted: 2013年1月07日(月) 16:00
以前この掲示板でゲームプログラミングについて質問させていただいていた者ですが、長い間挫折していました。
何が原因かと考えたところ、ゲームプログラミング以前にC/C++に関しての知識がしっかりしていないということが分かったので、勉強しなおしています。
これから当面はC/C++に関する超初歩的な質問をさせていただきたいと思いますのでよろしくお願いいたします。
件名と関係のない内容が長くなってしまい申し訳ないです。
ここから質問です。
printf関数の引数に*がつくときとつかないときの違いがよく分かりません。 のようなときには引数に*をつけるのに のようなときは引数に*をつけません。
上のソースコードで*をつけなければ002DF7F8のようなポインタ自体の値が出力されてしまいます。
下のソースコードのprintf関数の引数のstrは文字列"abc"の先頭のアドレスを指し示すポインタとして扱われるはずなので、どちらのprintf関数の引数もポインタ変数であることは同じなのにつけるつけないの違いがある理由が分かりません。
ポインタについて理解しきれていないのかもしれません。
なんとなくで文字列のときにつけないんだなぁとは分かるのですが、理由を知りたいのでよろしくお願いします。
何が原因かと考えたところ、ゲームプログラミング以前にC/C++に関しての知識がしっかりしていないということが分かったので、勉強しなおしています。
これから当面はC/C++に関する超初歩的な質問をさせていただきたいと思いますのでよろしくお願いいたします。
件名と関係のない内容が長くなってしまい申し訳ないです。
ここから質問です。
printf関数の引数に*がつくときとつかないときの違いがよく分かりません。 のようなときには引数に*をつけるのに のようなときは引数に*をつけません。
上のソースコードで*をつけなければ002DF7F8のようなポインタ自体の値が出力されてしまいます。
下のソースコードのprintf関数の引数のstrは文字列"abc"の先頭のアドレスを指し示すポインタとして扱われるはずなので、どちらのprintf関数の引数もポインタ変数であることは同じなのにつけるつけないの違いがある理由が分かりません。
ポインタについて理解しきれていないのかもしれません。
なんとなくで文字列のときにつけないんだなぁとは分かるのですが、理由を知りたいのでよろしくお願いします。