C语言中的单引号和双引号的区别
首先肯定地说,二者是有区别的,不是说用谁都一样。
1、实质区别,代表的含义不同
'A'代表的是一个整数,而且这个整数对应的是编译器所采用的字符集中的字符序列对应的数值。所以'A'跟ASCII中的65意义是相同的。
1 # include <iostream>
2
3 using namespace std;
4
5 int main(int argc, char const *argv[])
6 {
7 char str1 = 'A';
8
9 int str2 = 65;
10
11 cout<<str1<<endl<<(char) str2<<endl;
12
13 return 0;
14 }
2、占用的内存空间大小不同
1 # include <iostream>
2
3 using namespace std;
4
5 int main(int argc, char const *argv[])
6 {
7 char str1 = 'A';
8
9 char str2 = "A";
10
11 cout<<sizeof(str1)<<endl<<sizeof(str2)<<endl;
12
13 return 0;
14 }
大家猜一猜输出的str1的大小是多少?str2输出的大小是多少?
????????????????????????????
不用猜了,为啥,因为编译不了啊。怎么会编译不了?因为编译器报错了。
看出了因为啥了吗?我英文差,估计应该是说第9行,定义的一个字节存不下,建议你定义两个字节,就是char str2[2]来存放"A"。明明"A"应该占用一个字节啊?为啥要给他分配两个字节的空间呢?
因为这里系统会在字符串的尾端默认添加一个二进制为0的字符'\0',其实它就是一个转义字符。
1 # include <iostream>
2
3 using namespace std;
4
5 int main(int argc, char const *argv[])
6 {
7 char str1 = 'A';
8
9 char str2[2] = "A";
10
11 cout<<sizeof(str1)<<endl<<sizeof(str2)<<endl;
12
13 return 0;
14 }
C语言中的单引号和双引号的区别的更多相关文章
- shell脚本中:单引号和双引号的区别
单引号和双引号的区别 前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明: #!/bin ...
- linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)
tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...
- Go语言中的单引号、双引号、反引号
=Start= 搜索关键字: golang single quotes golang double quotes golang back quotes 参考结果: 结论写在最前:在Go语言中不倾向于使 ...
- PHP中的单引号跟双引号的区别
不同点: 单引号只能解析转义字符"'"和"\",其他的原样输出.
- C语言 单引号和双引号的区别
最近的C语言课在教字符串,貌似N多同学搞不清楚单引号和双引号的区别,有人还以为在C语言里用哪个都可以...其实C语言中的单引号和双引号含义是一点也不一样滴... 1.含义不同. 用单引号引起的一个字符 ...
- SQL - 单引号和双引号的区别
原文转载至:SQL中的单引号和双引号有区别吗? 在标准 SQL 中,字符串使用的是单引号. 如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义). 但在其它 ...
- javaScript中的单引号与双引号
javaScript中的单引号与双引号没有什么区别.但因为xhtml规范要求所有xhtml属性要用双引号括起来.所以在javaScript中使用单引号. var html = '<h2 clas ...
- js、html中的单引号、双引号及其转义使用
js.html中的单引号.双引号及其转义使用在js中对相关字符做判断或取值的时候很多情况下都会用到这些. ------ 在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:<in ...
- JS 和 HTML 中的单引号与双引号
JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 &apo ...
随机推荐
- Java Web程序设计笔记 • 【第1章 Web应用程序】
全部章节 >>>> 本章目录 1.1 Web 应用程序 1.1.1 Web 应用程序概述 1.1.2 Web 应用程序的工作原理 1.1.3 实践练习 1.2 HTTP协议 ...
- 如何下载安装JDBC_jar包,MySQL_JDBC_jar包的下载与使用(Windows)
一. 下载 (1) 打开MySQL_JDBC的下载网站:https://dev.mysql.com/downloads/connector/j/ (2) 选择操作系统:Platform Indepen ...
- 记一次log4j2引发的渗透测试
前言 记一次log4j2打入内网并用CVE-2021-42287.CVE-2021-42278获取到DC权限的靶场渗透. 外网打点 首先对web进行端口扫描,发现38080端口和22端口 访问一下38 ...
- DB2给表批量赋权
使用DB2的for循环语句给表批量赋权,同理,稍加修改可作为其他批量操作. 值得注意的是: grant语句无法直接执行,需要使用execute immediate才能执行. 授权操作表的所有权限:gr ...
- 初识python: 生成器
生成器定义理解,直接上代码: #!/user/bin env python # author:Simple-Sir # time:20181005 # 生成器 ''' # 列表生成式 a=[i for ...
- 初识python: 字符编码转换
指定当前文件编码格式:#-*- coding:utf-8 -*-unicode(万国码): 英文字母 1个字节,中文3个字节python中所有的字符都是unicode编码所有非unicode编码互转都 ...
- react中使用styled-component
styled-component的使用地址(https://www.cnblogs.com/aichenxy/p/8672752.html)
- Linux上天之路(二)之Linux安装
1. vmware workstation使用 VMware是全球领先的虚拟化公司,为客户提供虚拟化解决方案,个人虚拟化产品workstation,可以让用户通过虚拟化的方式在一台物理电脑中安装多个操 ...
- Go语言系列之包
Go语言的包(package) 一.包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt.os.io等. 二.定义包 我们还可以根据自己 ...
- 深入了解mysql--gap locks,Next-Key Locks
Next-Key Locks Next-Key Locks是在存储引擎innodb.事务级别在可重复读的情况下使用的数据库锁,官网上有介绍,Next-Key Locks是行锁和gap锁的组合.行锁是什 ...