Home Article c++中单引号与双引号区别

c++中单引号与双引号区别

Source:网络 Release time:2019-09-14 21:37:10 Author:影翼 Reading volume:143

首先肯定地说,二者是有区别的,不是说用谁都一样。

1、实质区别,代表的含义不同


'A'代表的是一个整数,而且这个整数对应的是编译器所采用的字符集中的字符序列对应的数值。所以'A'跟ASCII中的65意义是相同的。


# include <iostream>

using namespace std;
 
int main(int argc, char const *argv[])
{
    char str1 = 'A';

    int str2 = 65;

    cout<<str1<<endl<<(char) str2<<endl;
    
    return 0;
}






2、占用的内存空间大小不同


# include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
    char str1 = 'A';

    char str2 = "A";

    cout<<sizeof(str1)<<endl<<sizeof(str2)<<endl;

    return 0;
}






是说第9行,定义的一个字节存不下,建议你定义两个字节,就是char str2[2]来存放"A"。明明"A"应该占用一个字节啊?为啥要给他分配两个字节的空间呢?


因为这里系统会在字符串的尾端默认添加一个二进制为0的字符'\0',其实它就是一个转义字符。


# include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
    char str1 = 'A';

    char str2[2] = "A";

    cout<<sizeof(str1)<<endl<<sizeof(str2)<<endl;

    return 0;
}




简而言之,就是这样


"a"和'a'的区别,前者是字符串,后者是字符。

实际上,"a"在内存中一般占2个字节(不是说字符串长度,是占用内存。注意说是一般占2字节,有特殊情况),"a\0",以'\0'结尾。

而'a'是一个单字符。

当然字符串可以是"abcde"这样的,'abcde'这样就是错误的。。。



Original article, reproduced please specify:c++中单引号与双引号区别 | I YING YI

  
I want to comment
Leave a message
http://iyingyi.cn/
User login
You have not written any reviews yet!
You have commented!
Can only praise once!
You have a collection!