回答編集履歴
2
修正
answer
CHANGED
@@ -6,11 +6,14 @@
|
|
6
6
|
その代わり、間に何も書かずに、`"ABC" "abc"`と書いた場合は、
|
7
7
|
自動的に`"ABCabc"`という文字列としてみなされるという機能があるので、
|
8
8
|
一続きのものとして扱われます。
|
9
|
+
なので、間に`'\0'`は入りません。
|
9
10
|
|
10
11
|
---
|
11
12
|
なぜ、char型で良いのに、intなの?という点について、
|
12
13
|
C言語の文字リテラル、`'A'`とかは、実はint型なのです。
|
14
|
+
`printf("char=%d\n",sizeof(char));`
|
13
|
-
`printf("
|
15
|
+
`printf("\'A\' =%d\n",sizeof('A'));`
|
16
|
+
`printf("int =%d\n",sizeof(int));`
|
14
17
|
を実行してみるとわかります。
|
15
|
-
char型は1バイトなのに対して、`'A'`は4バイトあります。
|
18
|
+
char型は1バイトなのに対して、`'A'`はintと同じく4バイトあります。
|
16
19
|
C言語の仕様的にそうなっているのです。
|
1
追加
answer
CHANGED
@@ -5,4 +5,12 @@
|
|
5
5
|
C言語では、`""`で囲った範囲内で改行することはできません。
|
6
6
|
その代わり、間に何も書かずに、`"ABC" "abc"`と書いた場合は、
|
7
7
|
自動的に`"ABCabc"`という文字列としてみなされるという機能があるので、
|
8
|
-
一続きのものとして扱われます。
|
8
|
+
一続きのものとして扱われます。
|
9
|
+
|
10
|
+
---
|
11
|
+
なぜ、char型で良いのに、intなの?という点について、
|
12
|
+
C言語の文字リテラル、`'A'`とかは、実はint型なのです。
|
13
|
+
`printf("char=%d\n\'A\' =%d",sizeof(char),sizeof('A'));`
|
14
|
+
を実行してみるとわかります。
|
15
|
+
char型は1バイトなのに対して、`'A'`は4バイトあります。
|
16
|
+
C言語の仕様的にそうなっているのです。
|