ページ 1 / 1
C言語の''
Posted: 2014年10月25日(土) 18:03
by ヌルかな
C言語で’’(シングルクォーテンション2個)はどういう意味なのか教えてください
Re: C言語の''
Posted: 2014年10月25日(土) 18:20
by Hiragi(GKUTH)
nullではありません。 '何か' で文字を表します。
また " 何か "で文字列を表します。''は何もないことを表します。
ダブルクォークテーションの場合、文字列として扱われるため、一文字だとしてもサイズとして2Byte(最後に\0が入る)として扱われますが、
シングルクォークテーションの場合、文字として扱われるため、1byteとなります。
なお、nullは\0なので、ダブルクォークテーションを用いて文字列をcharなどに代入した場合、最後の要素に自動的に\0が代入されます。
Re: C言語の''
Posted: 2014年10月25日(土) 18:50
by ヌルかな
Hiragi様
返信たいへんありがとうございます。
質問のしかたが悪かったかもしれません
下記のようなコードを書いている人がいて理解できなかったので
教えていただきたかったのです。
char buf[1000];
FILE* fp;
int i=0;
fp=fopen("tmp.txt","r");
fgets(buf,100,fp);
while(buf!='\0'){
if(buf==''){ /* ここが理解できない */
printf("\n");
}else{
printf("%c",buf);
}
i++;
}
fclose(fp);
Re: C言語の''
Posted: 2014年10月25日(土) 19:02
by ヌルかな
大変申し訳ございません
ただの勘違いでした
Re: C言語の''
Posted: 2014年10月26日(日) 00:36
by 顔芸
解決済みのようですが一応
なお、nullは\0なので
\0はnull文字とは呼ばれてもnullではないですよね.
NULLは汎用ポインタとしてのゼロ,つまり(void *)0と定義されるので.
***
C言語で’’(シングルクォーテンション2個)はどういう意味なのか教えてください
error: empty character constant
コンパイルできませんね.
これに気付いたんでしょうか.どう勘違いだったのかも書いた方が親切かもしれませんね.