質問
を読みながら"C++プライマープラス5版"では、目にしたこの作品のコード:
cin.get(ch);
++ch;
cout << ch;
なので、この表示は以下の文字の後、ch.だかったのであることが少なくない。
cin.get(ch);
cout << ch+1;
現在、coutいと思いまchはint(みtypecasting).では、なぜcoutは"と思いますよね(笑)。かばん1charイベントは終了いたしました。る。.なぜなが違い:ch++、ch+1.
解決
その理由を起動するタイプのリテラル 1
がint.を追加するときはint、charすintですが、値は、charでは文字に置き換わります。
してみてください:
#include <iostream>
void print_type(char)
{
std::cout << "char\n";
}
void print_type(int)
{
std::cout << "int\n";
}
void print_type(long)
{
std::cout << "long\n";
}
int main()
{
char c = 1;
int i = 1;
long l = 1;
print_type(c); // prints "char"
print_type(i); // prints "int"
print_type(l); // prints "long"
print_type(c+i); // prints "int"
print_type(l+i); // prints "long"
print_type(c+l); // prints "long"
print_type(c++); // prints "char"
return 0;
}
他のヒント
ご注意-このansweに質問していき編集します。
現在、coutいと思いまchはint(み typecasting).
な進まない。はできませんの種類を変更することが可変可能です。
++ch;
単位であch.
ch+1;
の価値(コンテンツ)のchまたは1で投棄の結果です。あchしています。
の声明 ++ch;
単位 ch
は ch + 1;
は来ない。
また、rememeberる++ch'の値が実際に走行する前に、計算書いうのでは文字に置き換わります。
int i = 0;
cout << ++i << endl;
cout << i++ << endl;
// both will print out 1.
所属していません StackOverflow