C言語の''
- Hiragi(GKUTH)
- 記事: 167
- 登録日時: 15年前
- 住所: 大阪府
- 連絡を取る:
Re: C言語の''
nullではありません。 '何か' で文字を表します。
また " 何か "で文字列を表します。''は何もないことを表します。
ダブルクォークテーションの場合、文字列として扱われるため、一文字だとしてもサイズとして2Byte(最後に\0が入る)として扱われますが、
シングルクォークテーションの場合、文字として扱われるため、1byteとなります。
なお、nullは\0なので、ダブルクォークテーションを用いて文字列をcharなどに代入した場合、最後の要素に自動的に\0が代入されます。
また " 何か "で文字列を表します。''は何もないことを表します。
ダブルクォークテーションの場合、文字列として扱われるため、一文字だとしてもサイズとして2Byte(最後に\0が入る)として扱われますが、
シングルクォークテーションの場合、文字として扱われるため、1byteとなります。
なお、nullは\0なので、ダブルクォークテーションを用いて文字列をcharなどに代入した場合、最後の要素に自動的に\0が代入されます。
だいがくせい!
Re: C言語の''
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);
返信たいへんありがとうございます。
質問のしかたが悪かったかもしれません
下記のようなコードを書いている人がいて理解できなかったので
教えていただきたかったのです。
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言語の''
解決済みのようですが一応
NULLは汎用ポインタとしてのゼロ,つまり(void *)0と定義されるので.
***
コンパイルできませんね.
これに気付いたんでしょうか.どう勘違いだったのかも書いた方が親切かもしれませんね.
\0はnull文字とは呼ばれてもnullではないですよね.なお、nullは\0なので
NULLは汎用ポインタとしてのゼロ,つまり(void *)0と定義されるので.
***
error: empty character constantC言語で’’(シングルクォーテンション2個)はどういう意味なのか教えてください
コンパイルできませんね.
これに気付いたんでしょうか.どう勘違いだったのかも書いた方が親切かもしれませんね.