一直对于单引号和双引号有些混淆,本节讨论一下单引号和双引号的问题。

ide

1、基本知识spa

一、C语言中单引号用来表示字符字面量

指针

二、C语言中双引号用来表示字符串字面量

blog

好比:'a'表示字符字面量,在内存中占1个字节, 'a'+1表示的是'a'的ASCII码加1,结果为'b'

内存

"a"表示字符串字面量,在内存中占2个字节,其中,第一个字节是"a",第二个字节是结束符'\0',"a"+1表示的是进行指针运算,结果指向"a"结束符'\0'。

字符串

2、代码分析

编译器

下面存在这样一段代码

string

#include

int main()

{

char* p1 =  1 ;

char* p2 = '1';

char* p3 = "1";

printf("%s, %s, %s", p1, p2, p3);

printf('\n');

printf("\n");

return 0;

}

那么这段代码是否合法呢?

it

在Linux下,编译运行后,结果以下

io

为何会报段错误呢?下面咱们进行分析。

首先,咱们看

char* p1 =  1 ;

char* p2 = '1';

char* p3 = "1";

char* 在是指针,根据指针的概念,对应的指针变量存储的应该是一个地址,那么上述代码的内存分布能够理解以下

也就是说,p1和p2是在内存的低地址处。这里有一点须要记住,程序的内存地址,必需要小于0x08048000,否则就会产生段错误。

3、扩展

#include

int main()

{

char c = " ";

while( (c == "\t") || (c == " ") || (c == "\n") )

{

scanf("%c", &c);

}

return 0;

}

这段程序,在Linux中运行结果以下

能够看到程序运行之后,直接就完了,并无咱们想象中的须要输入的状况。为何会这样呢?

分析以下

char c = " ";

这段代码等同于

char c = "string";

一、编译后字符串"string"的内存地址被赋值给了变量c

二、内存地址占用4个字节,而变量c只占用1个字节

三、因为类型不一样,赋值后产生截断

所以,这里须要将全部的双引号改为单引号,就能够实现。

4、总结

一、单引号括起来的单个字符表明整数

二、双引号括起来的字符表明字符指针

三、C编译器接受字符和字符串的比较,无任何意义

四、C编译器容许字符串对字符变量赋值,只能获得错误

C语言双引号A单引号A,C语言查漏补缺——单引号和双引号相关推荐

  1. python双引号打不出来_在python 3中使用单引号和双引号时出错 - python

    使用os.system()函数时,我在python中遇到了EOL错误. 以下是代码行生成错误: os.system("cat subdomains.txt | cut -d'"' ...

  2. c语言中字符型不用单引号,必须知道的C语言知识细节:单引号和双引号正确用法...

    C语言中ACSII码字符单引号'和双引号"在程序中经常出现,很简单,但却是十分重要的语法标点符号,初学者容易混淆使用. 单引号在字符常量时使用,表示单个字符. 例如: char c; c = ...

  3. c字符串中包含双引号_必须知道的C语言知识细节:单引号和双引号正确用法

    C语言中ACSII码字符单引号'和双引号"在程序中经常出现,很简单,但却是十分重要的语法标点符号,初学者容易混淆使用. 单引号在字符常量时使用,表示单个字符. 例如: char c; c = ...

  4. c语输入单引号_必须知道的C语言知识细节:单引号和双引号正确用法

    C语言中ACSII码字符单引号'和双引号"在程序中经常出现,很简单,但却是十分重要的语法标点符号,初学者容易混淆使用. 单引号在字符常量时使用,表示单个字符. 例如: char c; c = ...

  5. js html 单引号,JS 和 HTML 中的单引号与双引号

    JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 ' ' x 1 ...

  6. c语言字母加单引号和不加,C语言单引号和双引号的区别

    C语言单引号和双引号的区别 导语:C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面我们来看看C语言单引号和双引号的`区别 ...

  7. 描述linux shell单引号,Linux shell 单引号和双引号

    在编写shell脚本的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别, 所以就整理一下供以后脑子不好使了的时候前来复习一下.首先说下他们的共同点: 好像就只有 一个,就是它们都可以用来 ...

  8. c++的单引号和双引号

    单引号在字符常量时使用,表示单个字符. 例如: char c; c = 'a'; c = '1'; c = 'A'; 当在单引号中出现两个及以上字符时或没有字符时,编译出错. 例如: char c = ...

  9. python举两种字符串引号的例子_python里的单引号和双引号的有什么作用

    在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗? python单引号和双引号的区别 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符 ...

最新文章

  1. [20170728]oracle保留字.txt
  2. CTFshow 文件上传 web154
  3. 计算机组成原理sop,MacBERT:MLM as correction BERT
  4. 今天会议的召开,和你有关系吗?
  5. Python项目实践:绘制七段数码管
  6. 数据仓库 迁移 大数据_从数据仓库迁移到大数据平台的最佳实践
  7. 2021年中国发改委和财政部PPP项目整体现状分析,城市基础建设仍是重中之重「图」
  8. Matlab中return语句
  9. 作为面试官,我是如何甄别应聘者的包装程度
  10. Python制作动态桌面壁纸程序-摆脱付费-Mili_Wallpaper
  11. 在v$lock里找Holder和Waiter
  12. python-scrapy爬虫框架爬取王者荣耀英雄皮肤图片和技能信息
  13. Python编辑基础课后习题(持续更新)
  14. 解决xp共享的批处理文件
  15. 【FPGA】vivado2019安装卡在optimize disk usage怎么办
  16. 评估酒店营销效果的12个重要KPI指标
  17. 京东商品及评论 数据采集
  18. python读取nii文件、nii.gz文件
  19. 转帖【编码原则十日谈】
  20. OpenSUSE13.1-i586,32位Linux-xfce桌面安装金山快盘

热门文章

  1. 2007年下半年全国计算机技术与软件专业技术资格(水平)考试湖南省报考工作实施细则...
  2. 麦克风声源定位原理_基于麦克风阵列的声源定位技术
  3. __dict__属性详解
  4. 锂电回收行业硫酸镍溶液除硅
  5. 阿里云(腾讯云)服务器使用宝塔,搭建Python环境,运行 django 程序
  6. Aspose最新版22.8教程
  7. 极高水平的电吉他音源 Orange Tree Samples Evolution Stratosphere Kontakt
  8. 计算机班级组织什么活动,【班级活动】计算机科学与技术3班开展“三月春游”户外活动...
  9. 【SpringBooot报错】eld redisTemplate in com.buba.utils.RedisUtils required a bean of type
  10. Adobe Acrobat Pro DC