天国にいけるC言語入門 ヘキサ構造体 ver2.2126
変数aに変数bをa=b;と代入したように配列hairetuboxに配列hairetuhakoをhairetubox=hairetuhako;のように直接代入して中身のデータを渡すことはできません😊
変数aに変数bをa=b;と代入したように配列hairetuboxに配列hairetuhakoをhairetubox=hairetuhako;のように直接代入して中身のデータを渡すことはできません😊
ソーラー「じゃあ
変数のようにある配列のデータを別の配列に代入する方法はあるのかな?
変数同士の場合だと
変数aに変数bを代入する
int a=1;
int b=2;
a=b;
を実行すると
aに格納されている値は
a=2になるよね。」
マックス「まず
配列宣言int hairetubox[3];をおこない
配列変数
hairetubox[0]
hairetubox[1]
hairetubox[2]
をつくり
hairetubox[0]=1;
hairetubox[1]=2;
hairetubox[2]=3;
と数値を代入するだろう
そのあと
配列宣言int hairetuhako[3];をおこない
配列変数
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
をつくり
hairetuhako[0]=3;
hairetuhako[1]=4;
hairetuhako[2]=5;
と数値を代入するだろう😊
あとは
hairetubox[3]=hairetuhako[3];
を実行すればいいだけじゃないか?
こうすれば
配列hairetuhako[3]内のデータはhairetubox[3]にわたされる
おそらく
配列変数
hairetubox[0]
hairetubox[1]
hairetubox[2]
に
配列変数
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
が代入される
hairetubox[0]=hairetuhako[0];
hairetubox[1]=hairetuhako[1];
hairetubox[2]=hairetuhako[2];
が実行されて
配列変数
hairetubox[0]
hairetubox[1]
hairetubox[2]
に
配列変数
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
が格納している数値データ
3
4
5
が渡されるってわけだ(ほんとかな?)」
ソーラー「あ、ほんとうだ それでうまくいきそうだね。」
マックス
「簡単、簡単
冴えてるな~オレ」
ソーラー「いい発想だね」
マックス「はははっ まあ 、みてな
では プログラムを作製し」
#include <stdio.h>
int main(void)
{
int hairetubox [3] ;
hairetubox[0]=1;
hairetubox[1]=2;
hairetubox[2]=3;
int hairetuhako[3] ;
hairetuhako[0]=3;
hairetuhako[1]=4;
hairetuhako[2]=5;
hairetubox[3]=hairetuhako[3];
/*👆😊さあっこのように
配列hairetubox[3]に
配列hairetuhako[3]を
代入しhairetuhako[3]の配列変数のデータを
hairetubox[3]の配列変数に渡すことができるのでしょうか
できそうですね*/
printf("%d\n",hairetubox[0]);
printf("%d\n",hairetubox[1]);
printf("%d\n",hairetubox[2]);
return 0;
}
マックス「コンパイルっと」
(EAZY IDEC)の場合
(Visual Studio)の場合
プログラムを実行します
マックス「プログラムを実行しますの表示か・・・
コンパイルできてるようだ
ははは 簡単すぎたか・・・」
プログラムの実行結果
1
2
3
マックス「ははは ・・・は?
配列hairetuhako[3]内のデータをhairetubox[3]に
わたしたはず・・・なのに
hairetubox[0]
hairetubox[1]
hairetubox[2]
に格納されている数値は
hairetubox[0]=1;
hairetubox[1]=2;
hairetubox[2]=3;
が実行されたときの
1
2
3
のまま・・・か???
hairetubox[0]=3;
hairetubox[1]=4;
hairetubox[2]=5;
になってない・・・
ちゃんと プログラムを実行できてる・・ような気がするんだが・・・
?」
ソーラー「変ですね
こんな簡単な命令文
hairetubox[3]=hairetuhako[3];
が実行できてないなんて」
マックス
「ははっまだまだ余裕だな
配列hairetuhako[3]内のデータをhairetubox[3]に
わたす
hairetubox[3]=hairetuhako[3];
この書き方が
まちがってるな
hairetubox=hairetuhako;
これが正解だろう ははははははは
ではプログラムを構成し直し
#include <stdio.h>
int main(void)
{
int hairetubox [3] ;
hairetubox[0]=1;
hairetubox[1]=2;
hairetubox[2]=3;
int hairetuhako[3] ;
hairetuhako[0]=3;
hairetuhako[1]=4;
hairetuhako[2]=5;
hairetubox=hairetuhako;
/*👆😊これなら配列hairetuboxに配列hairetuhakoを代入し
hairetuhako[3]の配列変数のデータを
hairetubox[3]の配列変数に渡すことができるのでしょうか
できそうですね*/
printf("%d\n",hairetubox[0]);
printf("%d\n",hairetubox[1]);
printf("%d\n",hairetubox[2]);
return 0;
}
マックス「はは
コンちゃん」
プログラム実行結果
(EAZY IDECの場合)
ファイル「C:/Users/solarplexuss/AppData/Local/EasyIDEC/project/ wwww/main.c」の
「17行目」で記述エラーを発見しました。
「lvalue」を付け忘れています。
Visual Studioの場合
エラー C3863 配列型 'int [3]' を割り当てることはできません。
エラー (アクティブ) E0137 式は変更可能な左辺値である必要があります
マックス「え~なんでぇ
もう、しんじらんな~い
実行できないじゃんか・・・」
ソーラー「???
なんかできそうでできないですね。」
マックス「まだまだ 大丈夫だ
次は
hairetubox[]=hairetuhako[];
だ
これで決まりのようだな」
ソーラー「まあ、そうなりますよね😊
これが正解かな」
マックス「
では
さらにプログラムを構成し直し
#include <stdio.h>
int main(void)
{
int hairetubox [3] ;
hairetubox[0]=1;
hairetubox[1]=2;
hairetubox[2]=3;
int hairetuhako[3] ;
hairetuhako[0]=3;
hairetuhako[1]=4;
hairetuhako[2]=5;
hairetubox[]=hairetuhako[];
/*👆😊これなら配列hairetubox[]に配列hairetuhako[]を代入し
hairetuhako[3]の配列変数のデータを
hairetubox[3]の配列変数に渡すことができるのでしょうか
これが公式な記述方法なのかな?
*/
printf("%d\n",hairetubox[0]);
printf("%d\n",hairetubox[1]);
printf("%d\n",hairetubox[2]);
return 0;
}
マックス「コン・パ・イ・ル」
プログラムの実行結果
EAZY IDECの場合
ファイル「C:/Users/solarplexuss/AppData/Local/EasyIDEC/project/ wwww/main.c」の
「17行目」で記述エラーを発見しました。
「identifier」を付け忘れています。
Visual Studioの場合
エラー C2059 構文エラー: ']'
エラー (アクティブ) E0029 式が必要です
エラー (アクティブ) E0029 式が必要です
マックス「「identifier」なぞ「17行目」でつけ忘れとらんわ~い」
ソーラー「どうも
配列に配列を直接代入して
数値データを渡すことはできないようです。」
マックス「おっかしいなあ?
ふつう代入できるように開発しそうなものなんだが・・・」
ソーラー「大丈夫です
次のプログラムのように
配列hairetuhako内のデータを1個ずつ
次のように
配列変数同士で
hairetubox[0]=hairetuhako[0];
hairetubox[1]=hairetuhako[1];
hairetubox[2]=hairetuhako[2];
配列hairetuboxに渡せばいいんですよ
#include <stdio.h>
int main(void)
{
int hairetubox [3] ;
hairetubox[0]=1;
hairetubox[1]=2;
hairetubox[2]=3;
int hairetuhako[3] ;
hairetuhako[0]=3;
hairetuhako[1]=4;
hairetuhako[2]=5;
hairetubox[0]=hairetuhako[0];
hairetubox[1]=hairetuhako[1];
hairetubox[2]=hairetuhako[2];
printf("%d\n",hairetubox[0]);
printf("%d\n",hairetubox[1]);
printf("%d\n",hairetubox[2]);
return 0;
}
プログラムの実行結果
3
4
5
マックス「これだと データをわたすことができるのか・・・」
ソーラー「配列
変数のように扱えるみたいですね」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます