🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
変数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=1から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]を代入する
hairetubox[3]=hairetuhako[3];
を実行すればいいだけじゃないか
こうすれば
配列hairetuhako[3]内のデータはhairetubox[3]にわたされる
つまり
hairetubox[0]=hairetuhako[0];
hairetubox[1]=hairetuhako[1];
hairetubox[2]=hairetuhako[2];
が実行されて
hairetubox[0]
hairetubox[1]
hairetubox[2]
に格納される数値データは
3
4
5
になるってわけだ」
以上がマックスの考察です
ソーラー「あ、ほんとうだ(´▽`*) それでうまくいきそうだね。」
マックス
「簡単、簡単
冴えてるな~オレ」
ソーラー「いい発想だね」
マックス「はははっ まあ 、みてな
では プログラムを作製し」
#include <iostream>
using namespace std;
int main()
{
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]に渡すことができるのでしょうか
できそうですね*/
cout<<hairetubox[0]<<"\n";
cout<<hairetubox[1]<<"\n";
cout<<hairetubox[2]<<"\n";
return 0;
}
マックス「ビルドっと」
ウィ~ン
マックス「パソコンがプログラムの実行に入りだしたな
いい感じ いい感じ♬
ははは 簡単すぎたか・・・」
ビルド実行結果
1
2
3
マックス「ははは ・・・は?
配列hairetuhako[3]内のデータをhairetubox[3]に
わたしたはず・・・なのに
hairetubox[0]
hairetubox[1]
hairetubox[2]
に格納されている数値データは
hairetubox[0]=1;
hairetubox[1]=2;
hairetubox[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 <iostream>
using namespace std;
int main()
{
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]に渡すことができるのでしょうか
できそうですね*/
cout << hairetubox[0] << "\n";
cout << hairetubox[1] << "\n";
cout << hairetubox[2] << "\n";
return 0;
}
マックス「はは
コンちゃん」
ビルド実行結果
エラー C3863 配列型 'int [3]' を割り当てることはできません。
エラー (アクティブ) E0137 式は変更可能な左辺値である必要があります
マックス「え~なんでぇ
もう、しんじらんな~い
プログラムの実行すらできないじゃんか・・・」
ソーラー「???
なんかできそうでできないですね。」
マックス「まだまだ 大丈夫だ
次は
hairetubox[]=hairetuhako[];
だ
これで決まりのようだな」
ソーラー「まあ、そうなりますよね😊
これが正解かな」
マックス「
では
さらにプログラムを構成し直し
#include <iostream>
using namespace std;
int main()
{
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]に渡すことができるのでしょうか
これが公式な記述方法なのかな?
*/
cout << hairetubox[0] << "\n";
cout << hairetubox[1] << "\n";
cout << hairetubox[2] << "\n";
return 0;
マックス「び・る・ど・ル」
ビルド実行結果
エラー C2059 構文エラー: ']'
エラー (アクティブ) E0029 式が必要です
エラー (アクティブ) E0029 式が必要です
ソーラー「どうも
配列に配列を直接代入して
数値データを渡すことはできないようです。」
マックス「おっかしいなあ?
ふつう代入できるように開発しそうなものなんだが・・・」
ソーラー「大丈夫です
次のプログラムのように
配列hairetuhako内のデータを1個ずつ
次のように
配列変数同士で
hairetubox[0]=hairetuhako[0];
hairetubox[1]=hairetuhako[1];
hairetubox[2]=hairetuhako[2];
配列hairetuboxに渡せばいいんですよ
#include <iostream>
using namespace std;
int main()
{
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];
/*これなら配列hairetubox[]に配列hairetuhako[]を代入し
配列hairetuhako[3]の中身のデータを
配列hairetubox[3]に渡すことができるのでしょうか
これが公式な記述方法なのかな?
*/
cout << hairetubox[0] << "\n";
cout << hairetubox[1] << "\n";
cout << hairetubox[2] << "\n";
return 0;
}
ビルド実行結果
3
4
5
マックス「これだと データをわたすことができるのか・・・」
ソーラー「配列変数hairetubox[0]やhairetuhako[0]は
変数とよばれるように
変数のように扱えるみたいですね」
☆ 🌞 ☆ 🌞 ☆ 🌞 ☆ 🌞 ☆ 🌞 ☆ 🌞 ☆ 🌞 ☆
ここで1番最初のプログラムに戻ってみましょう。
#include <iostream>
using namespace std;
int main()
{
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]に渡すことができるのでしょうか
できませんでした*/
cout<<hairetubox[0]<<"\n";
cout<<hairetubox[1]<<"\n";
cout<<hairetubox[2]<<"\n";
return 0;
}
ビルド実行結果
1
2
3
solarplexuss「このプログラムでは
hairetubox[3]=hairetuhako[3];
を行うことにより
int hairetubox [3] ;
により生成された配列hairetubox[3]に
int hairetuhako[3] ;
により生成された配列hairetuhako[3]を
代入し
配列hairetuhako[3]の配列変数に格納されているデータ
hairetuhako[0]=3;
hairetuhako[1]=4;
hairetuhako[2]=5;
を
配列hairetubox[3]の配列変数
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
に代入しようとしています。
でも
そのようなことはできませんでした。
このとき
よ~く
hairetubox[3]=hairetuhako[3];
を
ご覧ください・・・・
hairetubox[3]=hairetuhako[3];
は
単に
配列変数hairetubox[3]に
配列変数hairetuhako[3]の格納している値を
代入しているだけなので
配列変数
hairetuhako[0]=3;
hairetuhako[1]=4;
hairetuhako[2]=5;
のように格納されているデータが
配列変数
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
に代入されるわけもないというわけです。
そもそも
int hairetubox [3] ;
や
int hairetuhako[3] ;
を実行すれば
配列変数は
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
や
配列変数
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
のように
3つ配列変数ができますが
このとき
hairetuhako[3]
は
生成されていません
int hairetubox [100] ;
や
int hairetuhako[100] ;
を実行すれば
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
・
・
・
・
hairetuhako[99]
・
・
・
や
hairetuhako[0]
hairetuhako[1]
hairetuhako[2]
・
・
・
・
hairetuhako[99]
・
・
・
のように
100個の
配列変数
ができますが
このとき
hairetuhako[100]
や
hairetuhako[100]
は
生成されていません
間違いやすいポイントです」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます