C++字符数组赋值问题

代码如下:chara[10];cin>>(a+1);cout<<a;输出若为123,结果变成?23请问一下,输入的时候a+1将输入的值从数组的第二个元素开始赋值,第一个元... 代码如下:
char a[10];

cin>>(a+1);
cout<<a;

输出若为123,
结果变成?23
请问一下,输入的时候a+1将输入的值从数组的第二个元素开始赋值,第一个元素因为没有赋值,所以出现乱码问号。但是结果为什么会是?23而不是?12呢
展开
 我来答
lcy8760450
2017-09-27 · TA获得超过956个赞
知道小有建树答主
回答量:610
采纳率:64%
帮助的人:397万
展开全部
你没有给第一位赋值,那么第一位是随机值,你的实例中,a[0]可能是一个负值(-128与-1之间),负值会与第二位结合为一个显示(汉字或一些特殊字符均占两个字符,且第一位是负值),由于此负值与你的'1'(值为49)结合后找不到对应的字符,所以就显示问号
追问
你的意思是说其实123都已经输入到数组里了,a[1],a[2],a[3]分别为1,2,3,然后a[0]因为没有赋值所以跟a[1]的值结合为一个显示。我刚刚编译了一下,a[1]确实的值为1,谢谢你了!
帛叡让彗
2020-05-25 · TA获得超过3926个赞
知道大有可为答主
回答量:3136
采纳率:31%
帮助的人:173万
展开全部
C++中
字符数组
的赋值方法
char
a[5]
=
{0}
//
定义
所有
元素
为空
char
a[5]
=
{'a','b'}
//定义a[0]
=
'a',a[1]
=
'b'
char
a[5]
=
{'a','a','a','a','a'}
//定义各个元素为'a'
注意的是要预留最后一位放结束符
字符串的赋值方法
string
a
=
0;
//定义a为空
string
a
=
“123456789”
//定义字符串a是"123456789"
字符串就会在最后一位自动加上结束符,不用预留
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式