• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語)

C言語での配列操作について

このQ&Aのポイント
  • C言語で配列の要素に値を入れている場合、forループの中での初期化はループの外で使えません。
  • 例えば、forループの中で値を入れた配列を別のforループで使用したい場合、初期化を防ぐ方法はありません。
  • 値を別の配列に代入したり、別の変数に一時的に保存する必要があります。

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

  • ベストアンサー
回答No.5

ウーん、配列の添字k,lをなたが縦横のいずれに考えるかによりますが、その添字の動きとA[i][j]の添字 i,j がどのように対応しているかによります。 添字i,jの動きが、規則的であれば、 for(k=0;k<10;k++){ for(l=0;l<10;l++){ i=k+2; j=2*l+1; B[k][l] = A[i][j]/2; } } とかすれば対応可能ですが、まずやるべきことは、その添字 i,j の動きのがどのようになっているかを調べることが必要であるように思います。 なお、イマイチ質問の意味がつかめないのですが、A[i][j]は「=」の左辺に来なければ値が変わることはありません。

その他の回答 (4)

  • JoyWorld
  • ベストアンサー率13% (6/45)
回答No.4

初期化ってどういう意味で使ってますか? いったいどこでどうして初期化されると考えているのでしょうか なんとなく for文を関数と勘違いしているのかなと思ったのですが・・・

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

>このfor文の中で入れた値をfor文の外で使うことは出来ないのでしょうか? この質問から、 >つまり、A[i][j]の初期化を防ぐ方法はあるのでしょうか? ここへつながる意味がわかりません。 なぜ、「つまり」なんでしょうか。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

意図がよくわからないのですが…… 配列Aの寿命次第…かと思われます。 関数内のローカル変数なら、関数から抜けてしまったら無効になりますし。 >for(i=0;i<10;i++){ >for(j=0;j<10;j++){ >A[i][j]=・・・; >} >} > >for(k=0;k<10;k++){ >for(l=0;l<10;l++){ >B[k][l] = A[i][j]/2; >} >} A[][]がA[10][10]で宣言されているものの場合は、後から実行しているforループで範囲外アクセスしている可能性がありますが、その辺りは大丈夫でしょうか? # iとjがいくつになっているか?ということですけど。

  • gutukun
  • ベストアンサー率20% (8/40)
回答No.1

> このfor文の中で入れた値をfor文の外で使うことは出来ないのでしょうか? 当然できます。 どのように A を 宣言をしたのでしょうか? 変数のスコープを考えた位置で宣言されていますか?

関連するQ&A