• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 関数の中でカウントアップするには)

C言語関数でカウントアップする方法

このQ&Aのポイント
  • C言語の関数内でカウントアップする方法について教えてください。
  • 現在のプログラムではカウントアップがされていないようですが、どのように変更すれば良いでしょうか。
  • 期待する出力結果を得るためには、どのようにプログラムを修正すれば良いのでしょうか。

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

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

とりあえず、参考にしている書籍・サイト・教科書が古すぎます。 main(argc, argv) int argc; char **argv; はすごく古い書き方なので現代風に改めましょう。 int main(int argc,char **argv) と書きます。 void get_bgr( line ) も void get_bgr( int line ) です。プロトタイプ宣言も同様に直しましょう。 で問題点ですが、get_bgr関数の仮引数のlineとmain関数のローカル変数lineは実際には名前が同じだけの別の変数です。 get_bgrの呼び出しの瞬間にmain→get_bgrでlineの値はコピーされますが逆は起こりません。なのでline++;してもmainのlineには反映されないです。 反映させる方法としてはlineの値を戻り値で返してlineで受けるか、lineをポインタで渡してポインタ参照で書き換える2つの方法があります。

yokayoka7
質問者

お礼

zwiさん ご連絡遅くなり申し訳ありません。 細かいご指摘ありがとうございます。 記述方法について、古い書き方があるということで、現代風に書き換えるようにします。 >反映させる方法としてはlineの値を戻り値で返してlineで受け >るか、lineをポインタで渡してポインタ参照で書き換える2つ >の方法があります。 関数からの戻り値を反映させる方法として2通りあるということで、こちらでも所望の期待値を得られること確認しました。 早急にご回答いただき大変助かりました。 ありがとうございました。

関連するQ&A