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呢 展开
char a[10];
cin>>(a+1);
cout<<a;
输出若为123,
结果变成?23
请问一下,输入的时候a+1将输入的值从数组的第二个元素开始赋值,第一个元素因为没有赋值,所以出现乱码问号。但是结果为什么会是?23而不是?12呢 展开
2个回答
展开全部
你没有给第一位赋值,那么第一位是随机值,你的实例中,a[0]可能是一个负值(-128与-1之间),负值会与第二位结合为一个显示(汉字或一些特殊字符均占两个字符,且第一位是负值),由于此负值与你的'1'(值为49)结合后找不到对应的字符,所以就显示问号
追问
你的意思是说其实123都已经输入到数组里了,a[1],a[2],a[3]分别为1,2,3,然后a[0]因为没有赋值所以跟a[1]的值结合为一个显示。我刚刚编译了一下,a[1]确实的值为1,谢谢你了!
展开全部
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"
字符串就会在最后一位自动加上结束符,不用预留
字符数组
的赋值方法
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"
字符串就会在最后一位自动加上结束符,不用预留
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询