C言語の''

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ヌルかな

C言語の''

#1

投稿記事 by ヌルかな » 10年前

C言語で’’(シングルクォーテンション2個)はどういう意味なのか教えてください

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 15年前
住所: 大阪府
連絡を取る:

Re: C言語の''

#2

投稿記事 by Hiragi(GKUTH) » 10年前

nullではありません。 '何か' で文字を表します。
また " 何か "で文字列を表します。''は何もないことを表します。
ダブルクォークテーションの場合、文字列として扱われるため、一文字だとしてもサイズとして2Byte(最後に\0が入る)として扱われますが、
シングルクォークテーションの場合、文字として扱われるため、1byteとなります。
なお、nullは\0なので、ダブルクォークテーションを用いて文字列をcharなどに代入した場合、最後の要素に自動的に\0が代入されます。
だいがくせい!

ヌルかな

Re: C言語の''

#3

投稿記事 by ヌルかな » 10年前

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言語の''

#4

投稿記事 by ヌルかな » 10年前

大変申し訳ございません
ただの勘違いでした

顔芸

Re: C言語の''

#5

投稿記事 by 顔芸 » 10年前

解決済みのようですが一応
なお、nullは\0なので
\0はnull文字とは呼ばれてもnullではないですよね.
NULLは汎用ポインタとしてのゼロ,つまり(void *)0と定義されるので.

***
C言語で’’(シングルクォーテンション2個)はどういう意味なのか教えてください
error: empty character constant
コンパイルできませんね.
これに気付いたんでしょうか.どう勘違いだったのかも書いた方が親切かもしれませんね.

閉鎖

“C言語何でも質問掲示板” へ戻る