以下にわからなかったコードを記載します。(そのままのコードです)
C++
1#include<iostream> 2using namespace std; 3 4const char* const MONTH_NAME[]{ 5"睦月","如月","弥生","卯月","皐月","水無月","文月","葉月","長月","神無月","霜月","師走" 6}; 7 8const char* GetOldMonthName(int month){ 9if(1<=month && month<=12){ 10return MONTH_NAME[month-1]; 11} 12return 0; 13} 14 15int main(){ 16int month; 17 cout<<"今は何月ですか >"<<flush; 18cin>>month; 19 20const char*name=GetOldMonthName(month); 21if(name==0){ 22cout<<"そんな月ねーべさ"<<endl; 23}else{ 24cout<<name<<endl; 25} 26} 27
このコードを読もうとしたら、最初のconst char* const MONTH_NAME[]
のところがわからなくなりました。
const char*
は載せたイメージ図で考えると、他のアドレスを代入できないようにするconstで、
const MONTH_NAME[]
はこの、MONTH_NAME[]配列に、{ブロック内の月の読み方}以外の値を代入できない
そもそもこの配列はなんのアドレスをいれているのですか?
ポインタがついている変数、配列はアドレスを入れるだけのものではないのでしょうか?
まとめると、
【わからないこと】
・ポインタと定数について、上に載せたイメージ図の考え方であっているかどうか
・わからなかったコードのポインタはそれぞれどこを参照しているのか(わたしの図であれば、*pは変数aを参照している)
*だらけでこんがらがってしまいました。
ちなみにこちらのコードが載っている参考書は【ロベールのC++入門講座】です。

回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/25 17:56
2017/11/25 18:07 編集
2017/11/25 18:43