码迷,mamicode.com
首页 > 其他好文 > 详细

7.11牛课题

时间:2019-07-11 14:27:46      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:targe   地址   停止   UNC   cti   brief   数组   没有   code   

对两个字符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‘,应该把题目的长度换成大小

7.11牛课题

标签:targe   地址   停止   UNC   cti   brief   数组   没有   code   

原文地址:https://www.cnblogs.com/zuiaimiusi/p/11169532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!