Single quotes vs. double quotes in C or C++

时光怂恿深爱的人放手 提交于 2019-11-26 03:13:47

问题


When should I use single quotes and double quotes in C or C++ programming?


回答1:


In C and in C++ single quotes identify a single character, while double quotes create a string literal. 'a' is a single a character literal, while "a" is a string literal containing an 'a' and a null terminator (that is a 2 char array).

In C++ the type of a character literal is char, but note that in C, the type of a character literal is int, that is sizeof 'a' is 4 in an architecture where ints are 32bit (and CHAR_BIT is 8), while sizeof(char) is 1 everywhere.




回答2:


Some compilers also implement an extension, that allows multi-character constants. The C99 standard says:

6.4.4.4p10: "The value of an integer character constant containing more than one character (e.g., 'ab'), or containing a character or escape sequence that does not map to a single-byte execution character, is implementation-defined."

This could look like this, for instance:

const uint32_t png_ihdr = 'IHDR';

The resulting constant (in GCC, which implements this) has the value you get by taking each character and shifting it up, so that 'I' ends up in the most significant bits of the 32-bit value. Obviously, you shouldn't rely on this if you are writing platform independent code.




回答3:


Single quotes are characters (char), double quotes are null-terminated strings (char *).

char c = 'x';
char *s = "Hello World";



回答4:


  • 'x' is an integer, representing the numerical value of the letter x in the machine’s character set
  • "x" is an array of characters, two characters long, consisting of ‘x’ followed by ‘\0’



回答5:


Single quotes are for a single character. Double quotes are for a string (array of characters). You can use single quotes to build up a string one character at a time, if you like.

char myChar     = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','\0' };



回答6:


I was poking around stuff like: int cc = 'cc'; It happens that it's basically a byte-wise copy to an integer. Hence the way to look at it is that 'cc' which is basically 2 c's are copied to lower 2 bytes of the integer cc. If you are looking for a trivia, then

printf("%d %d", 'c', 'cc'); would give:

99 25443

that's because 25443 = 99 + 256*99

So 'cc' is a multi-character constant and not a string.

Cheers




回答7:


  1. single quote is for character;
  2. double quote is for string.



回答8:


Double quotes are for string literals, e.g.:

char str[] = "Hello world";

Single quotes are for single character literals, e.g.:

char c = 'x';

EDIT As David stated in another answer, the type of a character literal is int.




回答9:


In C single quotes such as 'a' indicate character constants whereas "a" is an array of characters, always terminated with the 0 character




回答10:


Single quote is used for character, while double quote used for string.

For example..

 printf("%c \n",'a');
 printf("%s","Hello World");

Output

a Hello World

If you used these in vice versa case and used single quote for string and double quote for character. Here, this will be result;

  printf("%c \n","a");
  printf("%s",'Hello World');

output :

for first line.You will have garbage value or unexpected.or you may be have output like this..

while for the second statement. You will see nothing. One thing more. If you have more statement after this. They will also give you no result.

Note : PHP language give you flexibility to use single and double quote easily.




回答11:


Single quotes are denoting a char, double denote a string.

In Java, it is also the same.




回答12:


Use single quote with single char as:

char ch = 'a';

here 'a' is a char constant and is equal to the ASCII value of char a.

Use double quote with strings as:

char str[] = "foo";

here "foo" is a string literal.

Its okay to use "a" but its not okay to use 'foo'



来源:https://stackoverflow.com/questions/3683602/single-quotes-vs-double-quotes-in-c-or-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!