What is the difference between 'a' and “a”?

前端 未结 6 838
离开以前
离开以前 2020-12-05 20:40

I am learning C++ and have got a question that I cannot find the answer to.

What is the difference between a char constant (using single quotes) and a s

6条回答
  •  情歌与酒
    2020-12-05 21:05

    'a' is a character literal. It's of type char, with the value 97 on most systems (the ASCII/Latin-1/Unicode encoding for the letter a).

    "a" is a string literal. It's of type const char[2], and refers to an array of 2 chars with values 'a' and '\0'. In most, but not all, contexts, a reference to "a" will be implicitly converted to a pointer to the first character of the string.

    Both

    cout << 'a';
    

    and

    cout << "a";
    

    happen to produce the same output, but for different reasons. The first prints a single character value. The second successively prints all the characters of the string (except for the terminating '\0') -- which happens to be the single character 'a'.

    String literals can be arbitrarily long, such as "abcdefg". Character literals almost always contain just a single character. (You can have multicharacter literals, such as 'ab', but their values are implementation-defined and they're very rarely useful.)

    (In C, which you didn't ask about, 'a' is of type int, and "a" is of type char[2] (no const)).

提交回复
热议问题