C++的选择题

设定义charstr[]="hello\tworld\n";则printf("%d,%c\n",sizeof(str),*(str+10))输出结果为。A)13,dB)1... 设定义char str[]="hello\tworld\n";
则printf("%d, %c\n", sizeof(str), *(str+10)) 输出结果为 。
A) 13, d B) 10, r
C) 14, l D) 12, d
为什么是13 我觉得只有12、还有
*(str+10)这个为什么是指向第10个数字?这个该怎么理解啊?
我知道答案是A,但是我选了D,我想知道A怎么来的,还有上面问的
展开
 我来答
chgowolf
2014-01-15 · 超过13用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:37.7万
展开全部
"hello\tworld\n"对于字符串而言是有结束符(\0)的,也就说实际的内容是这样的 hello\tworld\n\0 所以是长度是13。
*(str+10) 首先str是指向str[0]的指针,str+10就是指针向下移动10个位置,就是str[10]的值。
追问
\n也算一个字符吗
追答
小梦侠
2014-01-15
知道答主
回答量:23
采纳率:0%
帮助的人:13.9万
展开全部
在定义str[]时编译器会在字符串末尾自动加上\0表示字符串结尾,故总共有13个字符串。str即数组名表示数组的第1个元素的地址,也就是str[0]的地址,由于数组的元素之间是连续的,str后面家上数表示地址增加相应的数*对应数组的类型在内存中的字节数,简单的说就是str+n就表示str[n]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-15
展开全部
选a啊aaaaaaaaaaaaaaaaaaaaaaaaaa
尼玛,回答问题
追问
我知道选A,我想知道步骤,额,步骤,还有怎么来的
追答
“\t”和“\n”算是一个字符。
sizeof()和getlength()的区别是
sizeof会计算这个数据所占用的空间大小,就是i多少字节。
字符串,末尾会自动添加个”\0|作为结束表示,所以要加一。

为什么是“d”,因为数组的下标是从0,1,2,开始数的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式