• ベストアンサー

関数の引数なしを変数に代入したら入ってきた数値は何?

デバッグソフトで自分のプログラムを動かしていたときに、 int test_func(char x) { x = x + 1; ------(中略)----------- return x; } int main(void) { int test_val; ------(中略)----------- test_val = test_func; ------(中略)----------- } このようにtest_func(char x)という関数の戻り値を変数test_valに代入するつもりだったのですが、間違って引数部分を書かずにコンパイルしてしまいました。 このときにコンパイルでエラーが出ると思ったのですが、コンパイル完了でデバッガで変数test_valをみてみると何か値が入っていました。 ちょっと気になったのですが、この変数の中に入った値はいったい何なのでしょうか。ご存じの方いらっしゃいましたらご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

エラーはせずともワーニングは出ませんでしたか? test_func()の関数ポインタが入ったのだと思いますが。

techhouse
質問者

お礼

回答ありがとうございました。 ポインタって言うのはいわゆる”メモリ番地”のことですよね。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

関数は、コンピューターの中のどこかにいますので、変数と同様にアドレスを持ちます。 また、関数名は、その関数のアドレスを示します。 したがって、その文は、その関数のアドレス値をint型変数に代入する、 という意味を持ちます。

techhouse
質問者

お礼

回答ありがとうございました。 ポインタって言うのはいわゆる”メモリ番地”のことですよね。

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • 最新版に買い替えた場合、現在のデータは使えますか。
  • 最新のWindows 11に古いバージョンの筆まめ17をインストールする方法がわかりません。
  • 古いバージョン17の筆まめを新しいパソコンにインストールしようとしましたが、パソコンが認識しません。
回答を見る

専門家に質問してみよう