请问char s1=’\067’;char s2="1";的区别?

来源:百度知道 编辑:UC知道 时间:2024/06/16 10:50:47
请问在c语言中char类型的声明常量是加双引号声明的吗?
那加单引号声明的是什么意思?
char s1=’\067’;char s2="1";
这两个的区别是什么?

char s1=’\067’;
其中’\067’中067是八进制,代表一个字符。67转换成十进制为55,char s1=’\067’;表示给s1赋的值为ascii码为55的字符。

char s2="1"; 是非法的,可以改为:char s2='1';

s2是一个字符常量,它里面只能存放一个字符,而给它赋了一个字符串"1",字符串末尾需要有一个字节来存放'\0',所以char s2="1";是非法的。

在C语言中
'1'与双引号是有区别的
'1'=字符1
"1"=字符1+\0就是地一个空字符

顶楼上的

单引是字符,双引是字符串常量,c没有字符串变量,字符串变量是通过数组实现。

不过char s2="1"也是可以通过的,不过 s2占两个字节,1和NULL

查ascII表,字符1对应的是049,null对应的是000,在物理存储器上存储的就是 049 + 000 的二进制,一共16位

在c语言中char类型的声明常量是加单引号声明,
加双引号声明的是字符串;
所以,
’\067’,是个字符,占一个字节的空间,
"1",是个字符串,占两个字节的空间。

兄弟,你在定义变量吧?声明常量可不是这样的

'pml';,.k/.k''