1·char a[ ]="xyz",b={'x','y','z'},比较a b数组长度的大小关系 2·char a[ ]={'a'}和char b[10]={'a'}区
问题描述:
1·char a[ ]="xyz",b={'x','y','z'},比较a b数组长度的大小关系 2·char a[ ]={'a'}和char b[10]={'a'}区
答
1.char a[ ]="xyz" 大于 b={'x','y','z'}, 因为c或者c++语言规定以字符串形式赋值 后面会默认自动添加一个\0结束字符 所以前者是4个字符 而以单个字符赋值则没有
2.char a[ ]={'a'}和char b[10]={'a'}区别前者是省略数组大小 系统自动根据后面所赋值的多少规定数组的大小 所以前者其实就是定义了一个长度为1的字符数组 并把它赋值为a
后者已经定义数组长度为10 但是赋值却只有一个 所以系统默认把该数组的第一个字符赋值为a 其他的则为\0结束字符主要区别还是在数组的长度 省略数组长度时根据后面赋值的个数确定数组的大小 已经定义过大小的数组则大小自然就是定义好的大小