質問編集履歴

1

編集

2021/02/18 17:02

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -97,3 +97,47 @@
97
97
 
98
98
 
99
99
  プログラムに書いた黒い★の疑問と黒い太い線で書いた疑問に詳しく優しく教えてくださると大変ありがたいです。
100
+
101
+
102
+
103
+ 編集
104
+
105
+ ```
106
+
107
+ #include <stdio.h>
108
+
109
+ #include <string.h>int main(void)
110
+
111
+ {
112
+
113
+ char str[] = "12345""\0""67890";
114
+
115
+ char* p = strchr(str, '\0');/
116
+
117
+ printf("|%s|\n", str);
118
+
119
+ printf("|%s|\n", p + 1);
120
+
121
+ *p = '!';
122
+
123
+ printf("|%s|\n", str);
124
+
125
+ }
126
+
127
+
128
+
129
+ ```
130
+
131
+ をcやc++でデバックしたら、char* p = strchr(str, '\0');の部分が**charと*pになると思ったらchar*とpに分かれていました。**
132
+
133
+
134
+
135
+ 理由がわかりません。
136
+
137
+ なぜこのように分かれたのでしょうか?strchr(str, '\0');からの返り値のアドレスを受け取るためでしょうか?
138
+
139
+ また、char*型とはポインタ型のcharだとわかりました。しかし、だからなんだという感じで、ポインタ型のcharとはなんなのですが?
140
+
141
+
142
+
143
+ どうか基礎を固めたいのでどうかよろしくお願い致します。