[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/10 13:41 / Filesize : 36 KB / Number-of Response : 143
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれC言語(初心者用) Part.2



1 名前:デフォルトの名無しさん [2007/02/22(木) 08:16:03 ]
このスレッドはC言語について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
C使いが優しくコメントを返しますが、
お礼はC言語の布教と初心者の救済をお願いします。

くだすれC言語(初心者用)
pc10.2ch.net/test/read.cgi/tech/1153542424/

80 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 13:59:24 ]
> a=getchar();
getcharはEOFも返すのでint型を返すと宣言されており、実は正解。
EOFの場合を弾いてからchar型として扱うべき

> printf("%c\n",a);
可変個引数では全てint以上に拡張されて引数が渡される規則。
char型の値を渡そうとint型の値を渡そうと正常に動いてしまう。

> int a[50]="Hello";
できないという規則になっているからとしか言えない。
int型の配列に文字列を無理やり入れる方法はあるが、
文字列を扱う関数はchar配列、つまりsizeof (char) == 1バイトずつ
文字がメモリに格納されることを前提にコードが書かれているので、
無理にint型の配列にしたところで、正しく動作しない。

81 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:14:28 ]
>int a[50] = "Hello";
これは、
int a[50];
a[0] = 'H';
a[1] = 'e';
a[2] = 'l';
a[3] = 'l';
a[4] = 'o';
a[5] = '\0';
とするか
int a[50];
for (int ic = 0; a[ic] = "Hello"[ic]; ++ic) ;
とすれば実装できなくは無いな。

82 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:16:54 ]
int a[50] = {'H', 'e', 'l', 'l', 'o', '\0'}; でいいじゃない






[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<36KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef