char类型变量a声明后直接赋值,可以正常输出。
然而这样赋值却会输出乱码。
这是为什么?想了很久都没想通,是不是我代码写错了?
小白求教!
常用中文都占两个字节
你的第一种写法 相当于 只用了 a[0] - a[4]
其中 a[0]-a[1] == 你 a[2]-a[3]== 好 a[4] == \0 结束符
而 你的第二个 问题就多了
首先 a[10] 已经越界了 数组大小为10 下标 只能取到 a[9];
另外 a[num] 是一个字节 你要复制 5个字节的东西 怎么能行?
一般应该编译都过不了的
1.a[10]这里不能访问,你只能访问到a[9]
2."你好"表示的是一个字符串 ,a[10]表示的是一个字符
3.第二次的打印中a[0]-a[9]这里的值是未定义的
因为一个中文字是两个字符,而char类型只能存一个字符
赋值方式没有搞对,应该string a[10]=“你好”
应该要用string来定义