質問

を読みながら"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; 単位 chch + 1; は来ない。

また、rememeberる++ch'の値が実際に走行する前に、計算書いうのでは文字に置き換わります。

int i = 0;
cout << ++i << endl;
cout << i++ << endl;
// both will print out 1.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top