トップページ > プログラム > 2018年11月09日 > RK/u55Qe

書き込み順位&時間帯一覧

5 位/214 ID中時間01234567891011121314151617181920212223Total
書き込み数0001200000000000000006009



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.103【環境依存OK】

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.103【環境依存OK】
681 :デフォルトの名無しさん[]:2018/11/09(金) 03:42:19.86 ID:RK/u55Qe
constつけたらワーニングが無くなるのだろうか? 何故なくなるの?

ポインタにかかるのか、ポインタの中身にかかるのか?という問いだろうけれども恐らくはポインタ自体
にかかるのだろう。そしてconstがポインタの中身にかかる。順番が逆だといろいろ不都合がしょうじる
から、このようになる筈だ。
しかし、constを追加しただけでwarnningが消える理由はなんなのだろうか? (char*)でキャストするのと
同じ効果を持ちうるのはなぜか? constにはそんな意味はない。「単に書き換えできないようにする」
と言う意味だろう。書き換えできないsringももちろんあるから矛盾が生じるのだ。その矛盾を
解決する可能性があるとすれば書き換えできないstringがすなわちchar*と同じである場合に限る。
つまり
const string とは char* の事なのだ。
あってる?
もしあってるとすれば、
constexpr (char*) char *mes[] ={"error", "ok" , "abc"};
でもOKな筈だね。そうでないと矛盾する。この方が分かりやすいね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
682 :デフォルトの名無しさん[]:2018/11/09(金) 04:05:10.44 ID:RK/u55Qe
そしてワーニングはすべてきえたが、エラーになった。w
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
683 :デフォルトの名無しさん[]:2018/11/09(金) 04:08:12.56 ID:RK/u55Qe
constexpr const char *mes[] ={"error", "ok" , "abc"};
これをクラスのなかで定義したいのだが、クラスの中で定義するとエラーになる。クラス内だけで使いたいのに
外部に引き出すのは面倒だ。どうしたらいいの?
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
700 :デフォルトの名無しさん[]:2018/11/09(金) 21:19:39.32 ID:RK/u55Qe
「文字列リテラル型」って表現はよくわからない。文字列はリテラルじゃないの?
文字列のリテラル型というのであればリテラル型でない文字列ってあるんだろうか?
リテラルって何? 英語をやくしたら文字列って意味だろ。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
702 :デフォルトの名無しさん[]:2018/11/09(金) 21:29:35.20 ID:RK/u55Qe
A character literal is a type of literal in programming for the representation of a single character's value within the source code of a computer program.

「文字列リテラル」ってキャラクターリテラルのことだろうか?
それなら日本語にすると「文字列」でOKと思う。文字列リテラルって文字列列ってことか?
つまりA character literal literal **str のこと?
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
704 :デフォルトの名無しさん[]:2018/11/09(金) 21:31:35.81 ID:RK/u55Qe
それなら文字列配列だよな。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
706 :デフォルトの名無しさん[]:2018/11/09(金) 21:33:25.58 ID:RK/u55Qe
>>703
アッごめん。704は無視して。
リテラルって、堅物って意味のほうか? そうなんだ。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
707 :デフォルトの名無しさん[]:2018/11/09(金) 21:39:02.77 ID:RK/u55Qe
literalって頭が固くて融通が利かないって意味があるみたいだから、”abc”というように値が固定した
文字列って意味なんだね。
ということは
char literal 'a'
char literal "abc"
int literal 0x111
ということか。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
708 :デフォルトの名無しさん[]:2018/11/09(金) 21:40:08.63 ID:RK/u55Qe
まちがってる
char [] literal --> "abc"


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。