一道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 展开
#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 展开
3个回答
展开全部
B 这题通常选B,因为int占4个字节。
但是如果你在16位 turbo C上运行,那可能得到的答案就是D了。因为在16位的turboC上int只占2个字节。
char占一个字节,你强制转换成4个字节的int,然后做++操作,就会+4个字节,所以指向了第4位的4。
提示,应该是123456 你输错了
但是如果你在16位 turbo C上运行,那可能得到的答案就是D了。因为在16位的turboC上int只占2个字节。
char占一个字节,你强制转换成4个字节的int,然后做++操作,就会+4个字节,所以指向了第4位的4。
提示,应该是123456 你输错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b,因为int* 是4字节长的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询