关于 char 初始化多个字符问题

心血来潮试了试,给一个字符赋多个字母回如何?

#include<stdio.h>
#include<stdlib.h>
int main(){
	char a = 'a';
	char b = 'abcd';
	char c = 'abcde';
	printf("%c\n", a);  
	printf("%c\n", b); 
	printf("%c\n", c); 
	system("pause");
	return 0;
}

这个程序是有错误的,错误在于

	char c = 'abcde';   //常量中字符太多

但是,

char b=‘abcd’;

是正确的,并且能输出,但要注意的是它只能输出最后的字母‘d’。

为何char能接受四个字符呢?
主要问题在于转义符上:
转义符表
看最后两个 \ddd \xhh
也就是说:char 能接收四个字符就是为这两个准备的

#include<stdio.h>
#include<stdlib.h>
int main(){
	char a = 'a';
	char b = '\141'; //八进制转化对应的ASCII表
	char c = '\x61';//16进制对应的ASCII表
	printf("%c\n", a);  //a
	printf("%c\n", b);  //a
	printf("%c\n", c);  //a
	system("pause");
	return 0;
}

这三种对 char 的赋值都是正确的,在c语言中char大小只有1字节,这点是固定的。故就不存在输入多个字符的情况,转义符也不过是特殊的转换成一个字符。

在其他环境下,这样写是会报错的,这是一种错误写法。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值