【C++】定义字符型变量时单引号内写入多个字符的问题

6 篇文章 0 订阅

1、问题描述

在定义字符型变量给变量赋初值时,如果单引号内写入2~4个字符时,会出现警告;如果单引号内写入4个以上字符时,会出现错误。

1. 当1 < char_nums < 4时

int main() {
	
	char ch1 = 'abcd'; //警告,2、单引号内有2-4个字符时,编辑器将其看为int型(4字节)
	
	system("pause");
	return 0;
}


输出结果:d
warning C4305: “初始化”: 从“int”到“char”截断
warning C4309: “初始化”: 截断常量值

当单引号内的字符数char_nums(1 < char_nums < 4)时,编译代码时只会出现警告,并不会报错。单引号内有2-4个字符时,编辑器将其看为int类型(4字节),在输出结果时,只会输出一个字节,从前往后截断到剩1字节时停止,得到1个字符输出。

2. 当char_nums > 4时

int main() {
	
	char ch1 = 'abcde'; //报错,2、单引号内只能有一个字符,不可以是字符串
	
	system("pause");
	return 0;
}


error C2015: 常量中的字符太多

当单引号内的字符数char_nums( char_nums > 4)时,编译代码时会报错。单引号内超过了4个字符以后,也就是说超过了int类型的内存4字节,此时就会报错:常量中的字符数太多。

2、解决方法

字符型变量只允许单引号内写入一个字符,不允许写入多个字符,如果需要写入多个字符就定义字符串型变量即可。

数据类型:字符型char

#include <iostream>
using namespace std;
#include <string>
int main() {
	
	//char的正确使用
	char ch = 'a';
	cout << ch << endl;
	//当需要写入多个字符时,定义string变量
	string str = "abcde";
	cout << str << endl;
	
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值