回答編集履歴
3
前提が間違っていた。
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
誤字の修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
1. 質問にはCとC++の二つの異なる言語のタグがついています。C++は(一部を除いた)Cの拡張であり、Cについて聞きたいのであれば、わざわざC++のタグを付けると言うことはない判断しました。よって、Cの話ではなくC++に限定した話である前提とします。
|
10
10
|
|
11
|
-
2. 質問
|
11
|
+
2. 質問には`str`がどのような型であるかの情報がありません。strと言う名前からstring、つまり、文字列だと推測されます。C++で文字列を扱うのであれば`std::string`がもっとも妥当とおもわれるため、`std::string`であると判断しました。`str`は`std::string`であることを前提とします。
|
12
12
|
|
13
13
|
|
14
14
|
|
1
`str + i`が抜けていた。
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/OI
|
83
|
+
* [下のコードの実行結果](https://wandbox.org/permlink/Kl7O4ICoQ8iPtiU0)
|
82
84
|
|
83
85
|
|
84
86
|
|