07/09/19 20:22:18
(char *)*char_list->c
という式が表す値は
(char *)型のポインタcが指しているデータ
(char *)型のデータ
のどっちなんでしょうか?
982:デフォルトの名無しさん
07/09/19 20:37:54
演算子の優先順位から、(char *)(*(char_list->c))
983:デフォルトの名無しさん
07/09/19 20:47:49
>>982
その式を見るとカッコ(キャスト)よりも*演算子のほうが優先されている
みたいなんですが、(1+2)*(3*3)のようなカッコとキャストとしてのカッコは
別物として扱われているんでしょうか?
984:デフォルトの名無しさん
07/09/19 20:52:45
そりゃ意味からして別物だろうが
985:デフォルトの名無しさん
07/09/19 20:56:27
ついでに言うと、関数呼出演算子の括弧も別物。
986:デフォルトの名無しさん
07/09/19 21:04:19
>>985
全部一緒くたにして考えてました。orz
最後にもう一つ、
char c = 'a';
char *pc = &c
printf("%d\n", (int)*pc);
予想では上のコードは4バイト分の整数を出力すると思ったのに、
実際にやってみたらa一つ分の97しか出力しませんでした。
これは何故なんでしょうか?
987:デフォルトの名無しさん
07/09/19 21:06:35
何を言ってるんだ、お前は
988:デフォルトの名無しさん
07/09/19 21:07:45
*(int*)pc とでもやりたかったのか?
989:デフォルトの名無しさん
07/09/19 21:09:33
>>986
何が言いたいか分からん。
97は2桁だろ。何が出て欲しいんだか。
990:デフォルトの名無しさん
07/09/19 21:11:57
>>986
charだろうがintだろうが10進数で出力したら97だろ
991:デフォルトの名無しさん
07/09/19 21:13:08
>>986
>4バイト分の整数
この部分を具体例をあげつつ詳細に説明してくれ
992:デフォルトの名無しさん
07/09/19 21:15:21
char c = 'a';
char *pc = &c;
printf("%d\n", sizeof((int)*pc));
4バイト(intの大きさ)分の整数が出力されているってのはあってるぞ
993:デフォルトの名無しさん
07/09/19 21:16:26
>>986
これでどうだ。
printf("%.8X\n", (unsigned int)(unsigned char)*pc);
ここにunsigned intへのキャスト演算子は不要だがサービスしておいた。
994:デフォルトの名無しさん
07/09/19 22:21:24
>>973
PADって構造化フローチャートみたいなやつ?
995:デフォルトの名無しさん
07/09/19 22:24:57
>>994
大学でやった記憶が
996:デフォルトの名無しさん
07/09/20 02:05:03
99というのはISOの年度だからANSI C99というのはおかしくないか
997:デフォルトの名無しさん
07/09/20 02:12:12
おかしいね。
ANSI C89
ISO C90
ISO C95(と言っていいのか)
ISO C99
998:デフォルトの名無しさん
07/09/20 08:33:04
個人的にはC89とかC99の前にANSIとかISOとか付いてる時点でキモい。
まぁキモいだけで、だからどうしようってほどじゃないけど。
999:デフォルトの名無しさん
07/09/20 09:18:44
埋め
1000:デフォルトの名無しさん
07/09/20 09:20:04
梅
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。