14_单引号和双引号

1、单引号与双引号的区别

C语言中单引号用来表示字符字面量;而双引号用来表示字符串字面量;
比如:
‘a’表示字符字面量,在内存中占1个字节,‘a+1’表示’a’的ASCII码加1,结果为’b’
"a"表示字符串字面量,在内存中占2个字节,"a+1"表示指针运算,结果指向"a"结束符’\0’
举例说明:

#include <stdio.h>int main()
{char* p1 = 1 ;char* p2 = '1';char* p3 = "1";printf("%s, %s, %s", p1, p2, p3);printf('\n');printf("\n");return 0;
}

输出结果为:
编译

运行

由编辑运行结果可知,出现段错误的地方可能在第6、7、12行。
分析:
C语言语法规则:
(1)字符字面量被编译为对应的ASCII码;
(2)字符串字面量被编译为对应的内存地址;
(3)printf的第一个参数被当成字符串内存地址;
(4)内存的低地址空间不能在程序中随意访问;
根据C语言语法规则,打印出各变量地址,可知出现段错误原因;


其中,小于0x08048000的地址空间,访问会出现段错误。

2、程序找错

#include <stdio.h>int main()
{char c = " ";while( (c == "\t") || (c == " ") || (c == "\n") ){scanf("%c", &c);}return 0;
}

输出结果:没有输入显示,直接结束。
错误原因:char c中c为一个字节," "为空格+’\0’两个字节,赋值时会被截断,
正确程序:

#include <stdio.h>int main()
{char c = ' ';while( (c == '\t') || (c == ' ') || (c == '\n') ){scanf("%c", &c);}return 0;
}

3、小结

(1)单引号括起来的单个字符代表整数;
(2)双引号括起来的字符代表字符指针;
(3)C编译器接受字符和字符串的比较,但无任何意义;
(4)C编译器允许字符串对字符变量赋值,但可能会出现错误;

14_单引号和双引号相关推荐

  1. 字符变量 单引号 c语言,【C】 14_单引号和双引号

    单引号和双引号 C 语言中的单引号用来表示字符字面量 C 语言中的双引号用来表示字符串字面量 'a' 表示字符字面量,在内存中占用 1 个字节,'a' + 1 表示 ASCII码加 1 ,结果为 b ...

  2. shell 引号 解析 逗号_关于shell的单引号和双引号转义 以及特殊符号相关

    关于shell的单引号和双引号转义 以及特殊符号相关 20140603 Chenxin shell转义,单引号与双引号,反撇号 1.转义 单引号和双引号都能关闭shell对特殊字符的处理. 不同的是, ...

  3. php中的单引号与双引号详解

    一.引号定义字符串 在Php中,通常一个字符串被定义在一对引号中,如: 'I am a string in single quotes' "I am a string in double q ...

  4. 单引号、双引号 转义符

    '----单引号 "-----双引号在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下: <input value="Test" type=&quo ...

  5. mysql单引号和双引号

    表名,列名最好用`(esc下面那个,不用`会出错) 这就要从双引号和单引号的作用讲起: 双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出.例如: $ab ...

  6. Python单引号、双引号和三双引号的区别

    转载自:https://blog.csdn.net/sinat_25957705/article/details/71055406 Python单引号.双引号和三双引号的区别 python字符串通常有 ...

  7. JavaScript字符串的单引号和双引号问题

    1 可以使用单引号或双引号: 2 可以在字符串中使用引号,字符串中的引号不要与字符串的引号相同; 3 可以在字符串添加转义字符来使用引号,即\"或\': 示例代码: <!DOCTYPE ...

  8. php中的单引号、双引号和转义字符

    PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name):最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出. 例如: <?php        ...

  9. Python的单引号、双引号和三引号的字符串

    首先说一下, 单引号:字符串 双引号:字符串 三引号:多行文档注释 看图: 正常情况下,单引号和双引号括起来的字符串都不能跨行,除非借助续行符"\",而三引号括起来的字符串可以跨行 ...

  10. 单引号和冒号不能存入mysql么_mysql单引号和双引号的用法

    表名,列名最好用`(esc下面那个,不用`会出错) 这就要从双引号和单引号的作用讲起: 双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出.例如: $ab ...

最新文章

  1. android8.1上musicfx,Android自带音频均衡器MusicFx分析
  2. linux终端上网,ubuntu中上网-如何使用ubuntu下用命令行上网?ubuntu下用命令行上网, 爱问知识人...
  3. Jenkins持续集成环境之Maven的安装和配置
  4. 2020计算机科学第五轮评估,2019-2020全国计算机专业大学排名
  5. 4-4Pytorch解决数字识别MNIST
  6. 钱花了才是自己的你们觉得这句话对吗?
  7. Q109:用PBRT渲染Blender导出的模型(3)
  8. [www.infoshare.cc]【uiautomator】报告简介及查看
  9. 这就是搜索引擎--读书笔记四--索引基础
  10. linux查看命令源rpm,Linux rpm查询命令以及RPM包验证
  11. Asp.net1.0和2.0网站共存只解决方法---使用应用程序池
  12. 苹果电脑拷贝文件到u盘很慢_小米最硬核U盘!20g,3.1接口,120MB/S读取速度,可连iphone华为...
  13. WEBGIS开发 CityEngine使用 Cesium白膜纹理 夜景效果 城市模型展示
  14. 重要知识结构-持续更新中
  15. mASK调制在AWGN信道下的可达信息速率的积分计算法
  16. html文件做屏保win10,win10系统把屏保设置为桌面壁纸的处理方法
  17. 飞腾桌面腾锐D2000 核心板
  18. Android中关于Manifest的权限注册问题
  19. 超链接一般有两种表现形式_网站内链分为哪几种?内链的七种表现形式
  20. Java程序设计基本概念

热门文章

  1. 量子力学第十一弹——变分法
  2. 为什么很多人不喜欢甚至排斥用中文编程?
  3. 面向问题编程-切面+反射实现字段级别权限控制
  4. bzoj 1941 kd-tree求最大最小曼哈顿距离
  5. python京东注册机_京东自动注册
  6. linux服务运维管理,Linux服务器运维管理(第2版)
  7. java手机充值_话费充值示例代码
  8. html如何制作圣诞树,分享用HTML5来实现一个3D逼真的圣诞树
  9. 操作系统-进程甘特图画法
  10. 树莓派做网络代理_树莓派使用Proxy代理