[转]C语言单引号和双引号的区别
单引号和双引号在C中的意义完全不同,包围在单引号中的一个字符只是编写整数的另一种方法。这个整数是给定的字符在实现的对照序列中的一个对应的值,即ASCII码值。因此在一个ASCII实现中,‘a’和0141或97表示完全相同的东西,而一个包围在双引号中的字符串,只是编写一个有双引号之间的字符和一个附加的二进制为零的字符所初始化的一个无名数组的指针的一种简短方法。
使用一个指针来代替一个整数通常会得到一个警告消息(反之亦然),使用双引号来代替单引号也会得到一个警告消息(反之亦然)。但通常对不检查参数类型的编译器却除外。因此用printf('\n');来代替printf("\n");通常在运行时得到奇怪的结果。因为'\n'代表一个整数,它被转换为了一个指针,这个指针所指向的内容是没有意义的。
由于一个整数通常足够大,以至于可以放下多个字符,一些C编译器允许在一个字符常量中存放多个字符,这意味着用'yes'来代替'"yes"将不会被发现,后者意味着“包含yes和一个空字符的四个连续存储区域中的第一个的地址”,而前者意味着“在一些实现定义的样式中表示由yes联合构成的一个整数”。这两者之间的任何一致性都是巧合。
PS:简单理解,单引号实际是整数的另外的一种表达方式,该整数是单引号里字符的ASCII码;而双引号里是真正的字符,表示由头指针指向的一片连续区域存储的字符。
[转]C语言单引号和双引号的区别的更多相关文章
- C语言 单引号和双引号的区别
最近的C语言课在教字符串,貌似N多同学搞不清楚单引号和双引号的区别,有人还以为在C语言里用哪个都可以...其实C语言中的单引号和双引号含义是一点也不一样滴... 1.含义不同. 用单引号引起的一个字符 ...
- shell脚本中:单引号和双引号的区别
单引号和双引号的区别 前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明: #!/bin ...
- PHP单引号和双引号的区别
单引号和双引号的区别 .双引号 里的东西 输入的时候能判断是否 包含 变量,如果包含 变量 就一起输出 .单引号里的就不一样,不判断是否有变量,就全部当成 字符串 输出 .单引号解析的时间比双引号快 ...
- php单引号和双引号的区别与用法
php里的单引号把内容当成纯文本,不会经过服务器翻译.而双引号则与此相反.里面的内容会经过服务器处理(process). 举个简单的例子: $foo="data"; echo ...
- SQL - 单引号和双引号的区别
原文转载至:SQL中的单引号和双引号有区别吗? 在标准 SQL 中,字符串使用的是单引号. 如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义). 但在其它 ...
- Delphi学习手记——单引号和双引号的区别
单引号和双引号的区别 双引号表示其中字符可能包含变量,而单引号表示整个引号内的东西都当成字符串来处理. 也就是说:没有内设变量就用单引号'',有就用双引号"". 举例说明: $va ...
- grep正则表达式后面的单引号和双引号的区别
单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换:双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容! 一般常量用单引号' ...
- linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)
tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...
- PHP单引号和双引号的区别。
JS写多了,到用PHP时以为不区分单引号和双引号.导致想用'\n'换行换不了,后来百度了一下,原来在PHP里单引号里面的内容会当作普通字符串不会再做任何处理.例如 $num=1; echo " ...
随机推荐
- swift 关于闭包和函数
调用函数,有闭包参数时: 函数的实现中:闭包为参数时,有参数返回值类型: 调用闭包时,传入参数 调用函数时:闭包为参数,是闭包的实现,当闭包为最后一个参数时,可写在参数括号外面 即===>函数在 ...
- SQL的数据类型
Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多 8,000 个字符. N的范围1-8000 varchar(n) 可变长度的字符串.最多 8,000 个字符 ...
- JavaScript中Ajax的get和post请求
AJAX = 异步 JavaScript和XML(Asynchronous JavaScript and XML) 作用:在不重新加载整个网页的情况下,对网页的某部分进行更新. 两种请求方式: 1 ...
- 242. Valid Anagram(C++)
242. Valid Anagram Given two strings s and t, write a function to determine if t is an anagram of s. ...
- [LeetCode OJ] Decode Ways
A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...
- sleep与wait的区别,详细解答(通过代码验证)
package com.ysq.test; /** * sleep与wait的区别: * @author ysq * */ public class SleepAndWait { public sta ...
- HDU 3507 Print Article 斜率优化
Print Article Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)To ...
- 【POJ1067】取石子游戏 (威佐夫博弈)
[题目] Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的 ...
- cron表达式详解(Spring定时任务配置时间间隔)
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month ...
- Keil 的辅助工具和部份高级技巧
在前面的几讲中我们介绍了工程的建立方法,常用的调试方法,除此之外,Keil 还提供 了一些辅助工具如外围接口.性能分析.变量来源分析.代码作用分析等,帮助我们了解程 的性能.查找程序中的隐藏错误,快速 ...