C语言中 单引号里为什么可以写多个字符??

作者&投稿:蹉茜 (若有异议请与网页底部的电邮联系)
C语言中单引号里加两个字符~

由实现定义(implementation-defined)

一般来说,编译器采用的方法是把各个字符的编码累积起来
例如字符 'A' 的编码是65,字符 'b' 的编码是 98,字符常量 'Ab' 的值就是 16*256 + 98 = 16738

知道有这么回事就好了。一般这个知识只会用于跟别人装B

比如char a='1234';c++会认为单引号里的每一个数值都看做一个字符字面值,也就是说1 2 3 4各占一个字节,'1234'也就是一共占4个字节,然而char变量a只是占一个字节,初始化它的值却有4个字节,系统要从'1234'中截取一个字节的内容给a,然而是截取'1'给a吗?不是,是把'4'给a。因为在x86平台(http://baike.baidu.com/view/339142.htm)上,数据是以little-endian(http://baike.baidu.com/view/2368412.htm)的形式排列的,低位字节放在内存的低地址,高位字节放在内存的高地址。我们看'1234',从左到右从1到4,然而在计算机中存放的格式是从0x04到0x01,就是说'1234'的低位4存放在计算机的内存低地址位,'1234'的高位1存放在内存的高地址位,所以当把'1234'给变量a时,系统把内存中的地址中存放的4给a,其余的全部不要了

在c编译原理定义: ''里面只能写字符,你写多个字符时,后面输入的会把前面输入的在缓冲区内冲掉.所以你看到的永远是最后一个输入的内容。

因为是定义字符型,C只能代表一个字符,就是最后的那个字母。


汝城县15151056460: C语言中双引号与单引号的区别 -
欧发强力: 1、含义不同. 用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值.而一般我们的编译器采用的都是ASCII字符集.因此's'的含义其实和十进制数115的含义是一致的. 而用双引号引起的字符串...

汝城县15151056460: 字符串中,双引号与单引号有什么区别 -
欧发强力: 在C语言或者Java这类型语言中,单引号代表字符,比如'1'代表字符1,而不是数字的1.双引号代表的是字符串,一个字符串是由多个字符组成的,比如"hello"就是6个字符组成的字符串.(是6个不是5个,因为字符串的末尾会加一个特殊的空字符'\0')在PHP这类型语言中,没有字符类型,只有字符串类型.单引号代表按原样输出.比如'hello\r\n',输出的就是hello\r\n.但如果是双引号,则会对其中的转义字符进行转换.比如还是刚才的字符串,由于\r\n是换行标记,所以双引号内的"hello\r\n"就会输出hello后再换行.

汝城县15151056460: C语言单引号和双引号区别? -
欧发强力: 你好, c语言中用双引号引起来的,叫字符串常量,以一个看不见的'\0'结尾. 用单引号引起来的,叫字符常量,主要是查ASCII码表,一共有0~127,共128个,是大佬们特意凑出128个的. 祝你生活愉快.

汝城县15151056460: C语言的字符在输入的时候为什么不用单引号括起来 -
欧发强力: C++程序中单引号与双引号是有差别的.向数组元素赋值终止null和其它字符值时,必须用单引号.单引号的作用是将引号内的字符变成整型值(该字符的ASCII值),(还要说明一点,在C++中,单引号里可以放两个字符!表示一个整型值!具体怎么转换可以查书!)把所有的输入都看成是字符型数据!

汝城县15151056460: c语言 c="A" 这个赋值对吗?为什么 -
欧发强力: 单引号里面只能是一个字母 如果c是字符型变量,那给它赋值时即可以用单引号一个字母,也可以用数字(即ASCII码) 如果c是一个字符型数组,那就用双引号 因为双引号所括的内容存入空间时还会自动在最后加一个'\0'作为一个字符串的结束符,如果对一个字符型变量用c="A"将出错,因为实际存入的应为A\0,占两个单元,存不下

汝城县15151056460: C语言题如下图,我觉得是用单引号,为什么用双引号? -
欧发强力: 你想得是对的 单引号是单个字符 双引号是字符串如果字符和字符串比较 我用程序试的时候 怎么都返回为假所以这题 我试了 输出还是g可能题出错了 没有这么出的...

汝城县15151056460: 在C语言中各个标点符号的作用 -
欧发强力: 好的 ;分号,在C语言中表示句号,是非循环体都要有的,每一个语句结束都要有 ,逗号,一般用于变量声明一次声明一堆还有函数的形参// 注释,不会被计算机编译的在这行内,换句话讲你//写的东西电脑都不会管<小于号不用我说了吧=等于...

汝城县15151056460: c语言中的char c1='6'单引号加数字是什么意思啊? -
欧发强力: 引号加数字表示这个数字是一个字符不是十进制的数字. 比如你问题中的'6',就是表示ASCII码中的十进制码值为54的字符'6'. 字符'0'~'9'对应ASCII码表10进制值是48~57,所以通常我们想把字符数字转换成数值数字时,可以使用字符数字减去'0'来获得,比如'6'-'0'得到的值就是数字6.

汝城县15151056460: C语言char a[3] 为啥用大括号加双引号能输入2个字符,而用大括号加单引号一个一个输入能输 -
欧发强力: 双引号叫字符串,单引号叫字符,放在大括号里那是初始化. 初始化的时候要么是字符串,也就是双引号; 要么就是字符数组,也就是单引号;

汝城县15151056460: c语言中的双引号和单引号分别是什么意思呀?? -
欧发强力: 单引号用于界定字符常量 双引号用于界定字符串常量例如,在C中的头文件名称、输入输出函数的格式控制符等都属于字符串,所以要用双引号界定

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网