2016-12-31 22 views
0

私はCを新しくしましたCで文字の配列を作る

私は生徒のマークに従って成績を割り当てるプログラムを作ろうとしました。 Iが初期化は単純

nは値Iを割り当てるために学生

の数である

char grade[n]; 

など。最初の学生を参照最初のスロットとchar配列を作るために必要ループ内でマークを比較する条件を作り、条件が満たされた場合、ステートメントのこの種が実行されます。

grade[i] == 'B'; 

トンを呼び出すには彼は最後に私はこれを使用しました:

printf("%c", &grade[i]); 

"i"は表示ループ制御変数です。

最後に、奇妙なシンボルが表示されました。どのような文字列を作成し、個々の "スロット"を呼び出す正しい方法は何ですか?

printf("%c", grade[i]); 

+4

'=='は代入演算子ではありません。 –

+1

'&grade [i]'は、配列中のインデックス 'i'の*アドレス*を取得しています。本当に大きく、無駄な数になる可能性があります。配列のインデックス 'i'にある文字にアクセスするには' grade [i] 'を使うだけです。 – Purag

+0

[Cでのポインタ:アンパサンドとアスタリスクを使用するタイミングは?](http://stackoverflow.com/questions/2094666/pointers-in-c-when-to-use-the-ampersand-and-アスタリスク) – Purag

答えて

4

変更この

printf("%c", &grade[i]); 

そして、あなたが期待するとして、それが動作するはずです。

+0

@ user2217482質問にあなたのプログラム全体を貼り付けることはできますか?私たちは他の問題を見るために見ることができます。 – Sush

3

ポインタアドレスを印刷しますが、&は印刷されません。

1

「&」のアドレス演算子を使用せずにprintf( "%c"、grade [i])を使用するだけです。その文字のアドレスではなく、インデックスiの文字を印刷したいとします。