一道C++的选择题,帮忙解释一下,谢谢!!

12、执行下面程序代码后的输出结果是()。#include<iostream.h>voidmain(){char*u="1243567",*s;int*v;v=(int*... 12、执行下面程序代码后的输出结果是()。
#include <iostream.h>
void main()
{ char *u= "1243567", *s;
int *v;
v = (int *)u;
v++;
s = (char *)v;
cout<<s<<endl; }

A. 4567 B. 567 C. 67 D. 34567
展开
 我来答
yourpattern
2013-01-11 · TA获得超过111个赞
知道答主
回答量:171
采纳率:0%
帮助的人:87.1万
展开全部
B.
一般来说,Char占一个字节,你强制把(1243567)转换成4个字节的int,然后做++操作,就会+4个字节,因此需要移动4个字符(字节的位置),所以指向了第5位的5(注意开始指向的是第一位,移动4个字符,所以指向第5位), 所以输出是 567
LycrusHamster
2013-01-11 · TA获得超过889个赞
知道小有建树答主
回答量:487
采纳率:100%
帮助的人:110万
展开全部
B 这题通常选B,因为int占4个字节。
但是如果你在16位 turbo C上运行,那可能得到的答案就是D了。因为在16位的turboC上int只占2个字节。
char占一个字节,你强制转换成4个字节的int,然后做++操作,就会+4个字节,所以指向了第4位的4。
提示,应该是123456 你输错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iaudryhepburn
2013-01-11 · TA获得超过220个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:215万
展开全部
b,因为int* 是4字节长的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式