7.11牛课题

对两个字符a和b进行初始化:char a[]="ABCDEF";char b[]={'A','B','C','D','E','F'};则以下叙述正确的是 A
Aa数组比b数组长度长
B a与b长度相同
C a与b数组完全相同
D a和b中都存放字符串


分析:
题目说的是长度,应该是strlen(),对a求长度为6,但是对b求长度是一个未知的大小,应该strlen()知道遇到'\0'才停止,所以a,b之间的长度不能比较。因为 char b[]={'A','B','C','D','E','F'}; 没有字符串结束符,所以 strlen 的时候,会一直往后找,直到遇到 '\0',
b 找不到,就延着地址往上找,就把 a 的也算进去了,所以打印 strlen(b) 的结果是 12, printf b 的结果是 ABCDEFABCDEF。 
做修改  char b[]={'A','B','C','D','E','F', '\0'};  这样就一致了。
sizeof是大小,sizeof(a)=7,sizeof(b)=6,用字符串方式赋值比用字符逐个赋值要多占一个 字节 , 用于存放字符串结束标志'\0',应该把题目的长度换成大小
posted @ 2019-07-11 13:54  zuiaimiusi  阅读(109)  评论(0编辑  收藏  举报