タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

cに関するhiratake55のブックマーク (3)

  • 2NT -無料ブログ 無料ホームページ 等-

    hiratake55
    hiratake55 2009/02/03
    暇な時にやってみる
  • C言語の関数の仮引数における配列型宣言の危険性について - yuyarinの日記

    #lowhacksでnyaxt, nishioが配列とポインタの違いについて議論していた。その中で関数の仮引数を配列として宣言した場合の挙動はどうなるのか、という話題にたどり着いた。結果僕は非常に危険だと思った。 しかし、まさかそんなことする人はいないだろうと、この記事を書きかけで放置していたのだが、C言語を学習中の友人が危惧していたコードを書く可能性があるミスをしてしまったので書こうと思う。初心者のためにソースは全文、コンパイルチェックをした上で掲載している。 sizeof演算子のおさらい sizeof演算子は演算対象が配列ならば、配列の要素数×要素のサイズが返ってきて、ポインタならばポインタのサイズ(32bit系では4)が返ってくる。 /* 1 */ #include <stdio.h> #include <string.h> int main(void) { char str[] =

    C言語の関数の仮引数における配列型宣言の危険性について - yuyarinの日記
    hiratake55
    hiratake55 2008/06/05
  • c - *sとs[]の違い : 404 Blog Not Found

    2008年04月04日03:00 カテゴリTips c - *sとs[]の違い これ、結構tricky。 The C Programmming Lanugage K&R 「 *s 」と「 s[] 」の違い - IT戦記 コメント欄にある「K&Rの5.3を読めばわかる」かというと多分わからない。それどころか P. 100 char s[]; and char *s; are equivalent; なんて書いてあるから余計わからなくなると思う。 なのだけど、すっごく簡単な覚え方がある。 答えは sの値を変更できるか 要するに char *s = "pointer"; printf("%s\n", ++s); はOKだけど、 char s[] = "array"; printf("%s\n", ++s); はNGということ。GCCなら error: wrong type argument to

    c - *sとs[]の違い : 404 Blog Not Found
    hiratake55
    hiratake55 2008/04/17
  • 1