回答編集履歴

3

前提が間違っていた。

2021/02/15 22:18

投稿

raccy
raccy

スコア21737

test CHANGED
@@ -1,3 +1,19 @@
1
+ 質問者より
2
+
3
+
4
+
5
+ > 言語はcです。今後はタグにcのみにします。strの型はcharです。
6
+
7
+
8
+
9
+ とのコメントを受けました。**下記の回答は前提が間違っていますので、無視してください。**
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
1
17
  実際に同じか試してみました。
2
18
 
3
19
 

2

誤字の修正

2021/02/15 22:18

投稿

raccy
raccy

スコア21737

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  1. 質問にはCとC++の二つの異なる言語のタグがついています。C++は(一部を除いた)Cの拡張であり、Cについて聞きたいのであれば、わざわざC++のタグを付けると言うことはない判断しました。よって、Cの話ではなくC++に限定した話である前提とします。
10
10
 
11
- 2. 質問は`str`がどのような型であるかの情報がありません。strと言う名前からstring、つまり、文字列だと推測されます。C++で文字列を扱うのであれば`std::string`がもっとも妥当とおもわれるため、`std::string`であると判断しました。`str`は`std::string`であることを前提とします。
11
+ 2. 質問は`str`がどのような型であるかの情報がありません。strと言う名前からstring、つまり、文字列だと推測されます。C++で文字列を扱うのであれば`std::string`がもっとも妥当とおもわれるため、`std::string`であると判断しました。`str`は`std::string`であることを前提とします。
12
12
 
13
13
 
14
14
 

1

`str + i`が抜けていた。

2021/02/15 21:55

投稿

raccy
raccy

スコア21737

test CHANGED
@@ -62,6 +62,8 @@
62
62
 
63
63
  std::cout << *(str + i) << std::endl;
64
64
 
65
+ std::cout << (str + i) << std::endl;
66
+
65
67
  std::cout << &*(str + i) << std::endl;
66
68
 
67
69
  return 0;
@@ -78,7 +80,7 @@
78
80
 
79
81
  * [上のコードの実行結果](https://wandbox.org/permlink/P4N6rq9V0dYTdQb1)
80
82
 
81
- * [下のコードの実行結果](https://wandbox.org/permlink/OIRfSvUkEoU0JSNq)
83
+ * [下のコードの実行結果](https://wandbox.org/permlink/Kl7O4ICoQ8iPtiU0)
82
84
 
83
85
 
84
86