• ベストアンサー

2次元配列

charmer29-2の回答

回答No.3

再び#2です。 >3次元配列と同じと考えてもいいんでしょうか? Cにおいて、定義するときには配列でもその後参照するときには只のポインタ演算でしかないと言うことを承知の上で、 便宜上(3次元)配列と考えるのは構わないと思います。 但し、#1さんも書いていますが参照している領域が配列ではないことは意識しておく必要があります。 #それが理由で、私は配列と考えない方をお勧めするわけですが。

noname#168725
質問者

お礼

すばやい回答ありがとうございました。 ポインタの配列という事ですね。 参考にしていろいろ調べて見ます。 どうもありがとうございました。

関連するQ&A

  • 二次元配列について

    二次元配列を使用して三択クイズを作ろうとしています。 画面イメージ: 問1 りんごは何色?    1.黄色    2.青色    3.赤色 答入力>3 正解。 問2 ミカンは何色?    1.オレンジ色    2.紫色    3.赤色 答入力>2 不正解。正解は1。 ----------------------------------------------- これをプログラムにしてみると、 int tbl[][] = new int[2][5]; tbl[][]={{"りんごは何色?","1.黄色","2.青色","3.赤色",3}, {"ミカンは何色?","オレンジ色","紫色","赤色",1} }; for(int i=0;i < 1 ;i++) { System.out.println(tbl[i][0]); System.out.println(tbl[i][1]); System.out.println(tbl[i][2]); System.out.println(tbl[i][3]); System.out.print("答入力ー>"); String str = br.readLine(); int name = Integer.parseInt(str); if(name == tbl[i][4]) { System.out.print("正解です。"); } else { System.out.print("不正解 答えは"+ tbl.length[i][4] +"です。"); } } ------------------------------------------------ for文とlengthを使用するという条件を踏まえて作ったのですが、エラーとして文ではありませんとでてさきに進めない状況です。

    • ベストアンサー
    • Java
  • 配列について

    こんにちは。 int p[1000]という整数型の配列を作成しました。 例えば、 p[0] = 1; p[1] = 2; p[2] = 3; ・ ・ ・ p[99] = 100; を格納し、配列の長さ?を調べる際、 unsigned int len = 0; while(p[len]!='\0') len++; とすることで調べることが可能でしょうか?p[100]番以降に0が格納されている場合それがナル文字となるのでしょうか? また、char c[1000]と文字列型の配列を作成し、文字列の数値を格納していく場合、一桁であれば要素1個(1Byte?)で格納できますが、二桁以上であれば要素2個以上(2Byte以上←あっていますでしょうか)必要です。 c[0]='1' c[1]='2' c[2]='3' c[3]='4' ・ ・ ・ c[9]='1' c[10]='0' c[11]='1' c[12]='1' ・ ・ ・ ここで問題なのですが、文字列10と文字列11の判別はできないのでしょうか? 110111が連続している場合も値110と値111と判別できないのでしょうか? 値を格納する場合は、整数型のint c[1000]を用意するという事でしょうか? よろしくお願いします。

  • C言語のポインタと配列について

    下のコードについて2つ質問があります。 (1) char *p; p = str; ならわかるのですが、なぜ型が違う char *p = str; のような代入がOKなのでしょうか。文字列をコピーするときの   *p = *str; と比較して、とても違和感があります。  str は引数で受けた文字列の先頭アドレス。 (2)   char *str;   str = " 1 23 4 5"; と   char str[] = " 1 23 4 5"; との違いがよくわかりません。 #include <stdio.h> #include <ctype.h> void TrimSpace(char *str) {   char *p = str;        // (1)型が違うのになぜこんな代入をするのか?      while (*str != '\0') {     if ( !isspace(*str) ) {       *p = *str;      // この代入は自然       p++;     }     str++;   }   *p = '\0'; } int main(void) {      //char *str;   //str = " 1 23 4 5";     (2)これでは空白を詰めた後の文字列が表示されないのはなぜか?      char str[] = " 1 23 4 5"; //これで OK   printf("空白を詰める前:\"%s\"\n", str);   TrimSpace(str);   printf("空白を詰めた後:\"%s\"\n", str);   return 0; }

  • (エクセルマクロ)複数の一連作業をマクロで行う処理について

    以下の一連の処理についてマクロのコードを一式で教えてください。 【エクセルの構成】 1.シート名 日付だけ都度変更する形式 (例:YYYYMM_教えてGoo) 2.表 列 AからAAまでデータあり 行 1行目はタイトル。2行目以降からデータ。 【処理手順】 1.表全体のフォントを「MS Pゴシック フォント9」にする。 2.1行目から11行目と13行目を削除 3.A列とD列削除 4.一行目の項目行にオートフィルタを設定 5.ウインドウ枠の固定(先頭行(一行目の項目行)の固定) 6.H列に文字が入ってる行のみ削除 7.E列とF列を昇順に並び替え(優先順位は(1)F列、(2)E列) 8.データの最終行の次の行のU列からZ列に表を入れる。 (例)5行目が最終データ行の場合  A…U V W X Y Z 1 ・ 5   6 A =SUM() 7 B 8 C     =SUM() (書式設定と詳細) セルU6 「文字列A」と入力し、背景は黄色、文字色は赤 セルV6 背景は黄色、文字色は赤 セルW6 背景は黄色、文字色は赤 セルX6 背景は黄色、文字色は赤 セルY6 背景は黄色、文字色は赤 セルZ6 数式入力(=SUM(Z$2:Z5(最終行))、背景は黄色、文字色は赤 セルU7 「文字列B」と入力し、背景は黄色、文字色は赤 セルV7 背景は黄色、文字色は赤 セルW7 背景は黄色、文字色は赤 セルX7 背景は黄色、文字色は赤 セルY7 背景は黄色、文字色は赤 セルZ7 背景は黄色、文字色は赤 セルU8 「文字列C」と入力し、背景は黄色、文字色は赤 セルV8 背景は黄色、文字色は赤 セルW8 背景は黄色、文字色は赤 セルX8 背景は黄色、文字色は赤 セルY8 背景は黄色、文字色は赤 セルZ8 数式入力(=SUM(Z6:Z7)、背景は黄色、文字色は赤 すべて掛け線なし 9.データ最終行(表も含む)から5行目全体をグレーにし、その行のA列に「データA」と入力。 10.I列に文字が入ってる行のみを切り取り、一番最後にデータが入ってる行から6行目(「データA」と入力した下の行から) から貼り付ける。(切り取った行は行削除し、上詰め) 11.データ最終行(切取貼り付けしたデータAを含む)から3行目全体を黄色にし、その行のA列に「データB」と入力。 12.X列の前に列を挿入し、挿入した列の一行目(項目行)に「タイトル」と記入。 13.挿入した列の2行目から前の列(W列)にデータが入ってる行まで数式(=ROUND(W2/1.05,0)※2行目に入力した場合)をコピー。 14.セルAB1に「No.」と記入。 15.G列からW列とY列からAA列を非表示にする。 6と8以降からマクロの自動記録ではできませんでした。 ご教授お願いします。

  • 目に見える色が、吸収波長によって変化することについて

    はじめまして para-redは濃厚な溶液や固体では赤(黒)くみえる。しかしながら、希薄溶液(紫外吸収スペクトル測定時)では黄~オレンジ色に見える。この理由をスペクトルを元に説明せよ。 という問題なのですが… 黄色~オレンジ色に見えるのは、480nmの波長の光が吸収されて補色で、黄色~オレンジ色に見えるのかなと考えました。また赤く見えるのは、濃厚な溶液や固体では、物質がプリズムの役割としての光の吸収をしないから、、 と考えました。が、ぜんぜんわからないというのが本音です よろしくお願いします

  • ヘアカラーについて

    このような赤髪になりたいのですが、ブリーチは必要でしょうか? 以前美容院でワインレッドのヘアカラーの要望を出したらオレンジのような、茶色のような色(※ブリーチはなしです)にされてしまい、それから1度染めたのですが、赤色というよりオレンジや茶色といった方がいい感じの色です。なのでもう1度セルフでやろうと思っています。 ちなみに、染めようと思ってgot2bのラズベリーピンクを買ったのですが、ブリーチなしで赤に染まりやすいい商品があれば教えてください。 ちなみに、私の現在の髪色は暗めです。

  • カラーで、赤とクラシックレッドの違いは?

    デミオ14年のコージーを探していた時、 ふと思ったのですが、ボディカラーで赤とか クラシックレッドとかワインとか赤系でも色々あるようでワインは見た目にもワイン色でよくわかりますが、赤とクラシックレッドの違いがよくわかりません。。 言葉であらわすとどんな違いの色味なのでしょうか? クラシックレッドのほうが濃い?深い?色なのでしょうか?詳しい方教えてください^^

  • マ-カ

    暗記するのには文字の上から蛍光ペンをこすることができるようです かさねて塗るにはどのような色の順番でどのような色準備しておけば 効果的ですが、例えば黄色の次に赤塗るとオレンジに見えるようですけど どのような色でどのような順番ですれば文字が見にくくならないで 覚えることができるでしょうか。 宜しくお願いします。

  • jQuery: if文によるcss判定

    こんにちは、 <p style="color:red;">テスト</p> $(function(){ $("p").click(function(){ if($(this).css("color")=="red"){ $(this).css("color", "blue"); }else{ $(this).css("color", "red"); } }); }); 以上のように、文字色が赤だった場合には青に、赤以外であった場合は赤に、というif文を記述しても機能しませんでした。=="red" の部分を !="red" とすると、文字色が変化するので、デフォルトの文字色が赤と判定されていないようです。色指定を16進数やrgb形式にしても結果は同じでした。p要素をクラスによる色指定(.red { color:red })に変更し、hasClass による条件分岐にした場合は、問題なく機能します。どうして上記が動作しないのか、どなたか教えて頂けませんか。よろしくお願いします。

  • C言語について

    2つの文字列を入力して別の文字列にコピーするプログラムをつくっているのですが、どこが間違っているのでしょうか?教えていただけませんか? /*文字列連結*/ void *my_stract(char*, char*, char*); void main(void) { char bun1[100],bun2[100],bun3[200]; printf("文字列1を入力してください\n"); gets(bun1); printf("文字列2を入力してください\n"); gets(bun2); my_stract(bun1,bun2,bun3); puts(bun3); } char *my_stract(char *str3, char *str2, char *str1) { char *p1, *p2, *p3; p1=str1; p2=str2; p3=str3; while(*p1) { *p3=*p1; p1++; p3++; } while(*p2) { *p3=*p2; p2++; p3++; } *p3='\0'; return str3; }