teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

辺syy

2021/07/29 07:19

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -24,4 +24,10 @@
24
24
  ![こちらの画像は私の推論です。](60fd8a9445583d30e7ad994e885d68bc.jpeg)
25
25
 
26
26
  もう一つ、疑問があるのですが、なぜforの二周目以降のデバッグでのstr[]の中身はstr == NULLであるのに、一週目のstr[]の中身はstr == NULL ? \"(NULL)\" : strであるかについてです。
27
- 過去にforの一週目のカッコの中身、すなわち(q = p; !(*q == '?' || *q == ':' || *q == 0); q++)のq++は働かないと聞きました。q++が働かなったためにqには0や値すらも入らないためp = q + 1;が動かず、一週目のstr[]の中身はstr == NULL ? \"(NULL)\" : strなのかなと考えてみたのですが、正しいでしょうか。
27
+ 過去にforの一週目のカッコの中身、すなわち(q = p; !(*q == '?' || *q == ':' || *q == 0); q++)のq++は働かないと聞きました。q++が働かなったためにqには0や値すらも入らないためp = q + 1;が動かず、一週目のstr[]の中身はstr == NULL ? \"(NULL)\" : strなのかなと考えてみたのですが、正しいでしょうか。
28
+
29
+
30
+ 編集
31
+ cahr型は文字や文字列、文字としての数字や数字の列を表す文字コードなどを数値として扱い、
32
+ char* pは文字や文字列や文字としての数字や数字の列の先頭のアドレスを数値として扱い、
33
+ *qは一つの文字や文字としての数字を文字コードなどを数値として扱う。そのため、整数などの値を扱うint型のchに数値として渡せるため ch = *q;と出来たのでしょうか?

2

編集

2021/07/29 07:19

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -20,6 +20,7 @@
20
20
  }
21
21
  }
22
22
  ```
23
+ **charなどの型のない*** qは一文字の数字や文字を扱います。
23
24
  ![こちらの画像は私の推論です。](60fd8a9445583d30e7ad994e885d68bc.jpeg)
24
25
 
25
26
  もう一つ、疑問があるのですが、なぜforの二周目以降のデバッグでのstr[]の中身はstr == NULLであるのに、一週目のstr[]の中身はstr == NULL ? \"(NULL)\" : strであるかについてです。

1

編集

2021/07/29 07:07

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,7 @@
20
20
  }
21
21
  }
22
22
  ```
23
- ![こちらの画像は私の推論です。](f735586ad03995913eec719f511d3fff.jpeg)
23
+ ![こちらの画像は私の推論です。](60fd8a9445583d30e7ad994e885d68bc.jpeg)
24
24
 
25
25
  もう一つ、疑問があるのですが、なぜforの二周目以降のデバッグでのstr[]の中身はstr == NULLであるのに、一週目のstr[]の中身はstr == NULL ? \"(NULL)\" : strであるかについてです。
26
26
  過去にforの一週目のカッコの中身、すなわち(q = p; !(*q == '?' || *q == ':' || *q == 0); q++)のq++は働かないと聞きました。q++が働かなったためにqには0や値すらも入らないためp = q + 1;が動かず、一週目のstr[]の中身はstr == NULL ? \"(NULL)\" : strなのかなと考えてみたのですが、正しいでしょうか。