配列を使わずに、変数名を動的にループで回したい
大学の課題をやっている途中に思ったことなのですが……。
プログラム中に同じ型の変数p1,p2,p3があり、それぞれの変数にループで同じ処理を施したいと思っています。
しかし、「p(i)」や「("p" + i)」などと、変数どうしを別のものとして認識させようとしても、コンパイラから警告が出て上手くいきません。
配列を使えば、このような処理が出来ることはわかるのですが、使う変数名を指定されてしまっているために、今回は配列を使えません。
出来るか出来ないか、出来る場合は方法を知りたいです。
後、今回はC言語のプログラムで利用出来るかが自分にとっての問題なのですが、C言語以外のこのプログラミング言語なら出来る、とかの情報もこの機会に知りたいです。
お答え出来る範囲でいいので、もしよければ回答お願いします。
No.4
- 回答日時:
ポインタの配列を用意しておくとか。
int main(void)
{
int p0 = 1, p1 = 3, p2= 5;
int *ptr_array[] = { &p0, &p1, &p2 };
int i;
for(i=0; i<3; i++){
printf("p%d = %d \n", i, **(ptr_array + i));
}
return 0;
}
ちょっと強引ですが、これで動きますよ。
変数を使って、変数名を動的に変更するには、やっぱりポインタ配列か関数で実装するのが良さそうですね。
回答ありがとうございました。
No.3
- 回答日時:
同じ処理なら関数にするのが一般的です。
No.2ベストアンサー
- 回答日時:
変数名を動的に変更するのは難しいでしょう
ポインタ配列を使って 実際に操作される変数と コード上で使用している変数を偽装することは可能ですよ
たとえば
int p1, p2, p3 , i;
int* pp[] = { &1p, &p2, &p3 };
としておけば
*pp[0] で p1を操作可能ですよ
for( i = 0; i < 3; i** ) {
*pp[i] = i * 3;
}
などと操作すれば
p1,p2,p3に 0,3,6が代入されます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- その他(プログラミング・Web制作) プログラミングって本来数学的な計算をする為のものではないのですか? 学校で配られたFortran90 11 2022/08/25 22:14
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
変数を動的に作るには?
Visual Basic(VBA)
-
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
-
4
構造体のメンバをfor文で回したい
C言語・C++・C#
-
5
オブジェクト名をforループ内で変更するには?
Java
-
6
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
-
7
VBAで変数の数/変数名を動的に変化させる
その他(プログラミング・Web制作)
-
8
変数を動的に利用するには?
Java
-
9
動的な変数名のつけ方について
C言語・C++・C#
-
10
CloseとDisposeの違い
Visual Basic(VBA)
-
11
Excel-vba 文字列と変数を連結して更に変数として扱いたい
その他(プログラミング・Web制作)
-
12
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
13
関数から配列を返すには?
C言語・C++・C#
-
14
fopenで別ディレクトリにファイルをオープンしたい
C言語・C++・C#
-
15
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
16
文字列を変数名として扱う方法
Visual Basic(VBA)
-
17
C#にて別クラスの関数を使いたい
C言語・C++・C#
-
18
C#のループでtextboxに値を入れる方法
C言語・C++・C#
-
19
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
20
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列を使わずに、変数名を動的...
-
C言語 配列の長さの上限
-
複数の選択範囲の行番号を個別...
-
配列で格納したものをmsgboxで...
-
メモリの初期値
-
配列同士の文字列の比較
-
VB.netでRadioButtonを配列にし...
-
パイソンの
-
2次元配列を戻り値とする関数?
-
FORTRAN77の配列(除算)
-
C# Listを使わずに2次元配列の...
-
ポインタの配列のコンマについて
-
unsigned char配列への入力の仕方
-
VBで構造体の配列を関数に渡す...
-
テキストファイルから文字列を...
-
C# 配列の変数宣言について。
-
テンキーの配列について
-
c++によるジャンケンプログラム
-
Functionの戻り値を2次元配列...
-
char型の配列 char buff[20] = ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列の参照渡しで型が一致しま...
-
配列を使わずに、変数名を動的...
-
VBで構造体の配列を関数に渡す...
-
配列で格納したものをmsgboxで...
-
unsigned char配列への入力の仕方
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
擬似コード 長さがmの配列でな...
-
【速いブラインドタッチ】手を...
-
パイソンの
-
C言語初心者 ポインタについて...
-
ExcelVBAで質問です。離れた二...
-
配列を含む構造体の初期値について
-
複数の選択範囲の行番号を個別...
-
Functionの戻り値を2次元配列...
-
C++ vectorに配列をプッシュしたい
-
先頭アドレスとは何ですか?
-
テキストファイルから文字列を...
-
Redimした動的配列はEraseする...
おすすめ情報