今日私はC++でswitch文を使用するさまざまな形式を学習しテストしていました。 私はこのコードを書いて、2つがケースであり、1つが比較文字(メイン入力)である3つの文字を入力できるようにする関数を作成しました。 の場合は変数を使用できないため、ポインタを使用することにしましたが、私のアプローチはうまくいかず、理由がわかりません。ポインタを使用している原因は、実際には既に定義されているアドレスの値を指していることを意味します。スイッチの機能とポインタ(コード参照)
これがエラーである:
[Error] 'iloc' cannot appear in a constant-expression
[Error] '*' cannot appear in a constant-expression
これはコードである:
#include <iostream>
using std::cout;
using std::cin;
void switch_function(char i, char j, char c){
//inputing values by the user
cout <<"Insert i(char): ";
cin >> i;
cout <<"Insert j(char): ";
cin >> j;
cout <<"Insert c(char) "<< i <<" Or "<< j <<": ";
cin >> c;
//declaring pointers
char * iloc;
char * jloc;
char * cloc;
//registering memory adresses
iloc = &i;
jloc = &j;
cloc = &c;
//switch function
switch(*cloc){
case *iloc:
cout << i;
break;
case *jloc:
cout << j;
break;
}
}
int main(){
//s and f characters are the cases and the third f is the main user input.
switch_function('s', 'f', 'f');
cout <<"\n";
int location;
int * target;
target = &location;
cout << &location;
cout <<"\n"<< target + 1;
}
おそらく、「機能しませんでした」とは、コンパイラから何か問題があったと言われたことを意味します。エラーメッセージを注意深く読んでください。それが何を意味するのか理解できない場合は、それをあなたの質問に含めてください。 –
あなたも私たちと分かち合っていますか?*** "スイッチクラス" ***どうぞ! –
申し訳ありませんが、私の悪い。あなたはこれについて何か言いたいことはありますか? @ΦXocen웃いepepeúpaツ –