我是靠谱客的博主 细腻大炮,最近开发中收集的这篇文章主要介绍C语言中的单引号和双引号的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原网址:http://www.cnblogs.com/arvintang/p/5115698.html (若侵权请告知,必删)

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

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;
}

大家猜一猜输出的str1的大小是多少?str2输出的大小是多少?
????????????????????????????
不用猜了,为啥,因为编译不了啊。怎么会编译不了?因为编译器报错了。
这里写图片描述

看出了因为啥了吗?我英文差,估计应该是说第9行,定义的一个字节存不下,建议你定义两个字节,就是char str2[2]来存放”A”。明明”A”应该占用一个字节啊?为啥要给他分配两个字节的空间呢?

因为这里系统会在字符串的尾端默认添加一个二进制为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;
}

这里写图片描述

最后

以上就是细腻大炮为你收集整理的C语言中的单引号和双引号的区别的全部内容,希望文章能够帮你解决C语言中的单引号和双引号的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部