回答編集履歴
2
微修正
answer
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
こんにちは。
|
2
2
|
|
3
|
+
argv[2]にはコマンドライン引数の文字列が格納されているメモリへのポインタが入っています。
|
3
|
-
|
4
|
+
また、文字列定数の"0"や"1"はこれらの文字列が記録されているメモリへのポインタです。
|
4
5
|
|
5
6
|
仮にargv[2]の指す先の文字列が"1"だったとしても、それが格納されているメモリは文字列定数"1"が記録されているメモリとは別ものですから、argv[2] == "1"がtrueになることは期待できません。
|
6
7
|
int i=1, j=1;とした時、(i == j)ですが、(&i == &j)にならないのと同じ話です。
|
1
typo
answer
CHANGED
@@ -6,5 +6,5 @@
|
|
6
6
|
int i=1, j=1;とした時、(i == j)ですが、(&i == &j)にならないのと同じ話です。
|
7
7
|
ですので、xmodem_receive()が呼ばれることはありません。
|
8
8
|
|
9
|
-
さて、せっかくC++を使うのでしたら、`std::string(argv[2]) == "
|
9
|
+
さて、せっかくC++を使うのでしたら、`std::string(argv[2]) == "1"`とすれば簡単に比較できます。
|
10
10
|
C言語に対するC++の便利良さの最大の1つはstd::stringと思います。
|