C语言选择题8,9题,求大神给个具体解答思路和解析,谢谢了,在线等。

 我来答
ZaolyloaZ
2017-03-11 · TA获得超过1776个赞
知道小有建树答主
回答量:567
采纳率:80%
帮助的人:91.8万
展开全部
8. 假定 a 为一个整数类型的数组名,整数类型的长度为 2,则元素 a[4] 的地址比 a 数组的首地址大 8 个字节
解析:&a[4] 比 &a[0] 大 4 个元素的大小,而一个元素是 2 字节,所以 &a[4] - &a[0] == 8

9. 假定 s 被定义为指针类型 char * 的变量,初始指向的字符串为 "Hello world!",若要使变量 p 指向 s 所指向的字符串,则 p 应定义为 char *p = s;
解析:
B 选项中 char *p = &s;,该句无意义,由于 s 已经是一个 char * 变量了,再进行 & 操作符只会使它变为一个 char ** 的表达式,赋值到 p 中。
C 选项中 char *p; p = *s;,该句无意义,只是把一个 char 表达式强制转换成 char * 表达式赋值到 p 中。
D 选项中 char *p; p = &s;,同 B。
所以应选 A。
gaopengyulike
2017-03-11
知道答主
回答量:22
采纳率:0%
帮助的人:11.6万
展开全部
第八题:a数组的首地址是a[0],a[4]的地址当然是a[4],因为题目告诉你了,整形类型的长度是 2,并且a[4]-a[0]=4,a[4]比a[0]大四个空间,注意是空间而不是字节数,所以要算字 节数的话要乘以它的长度,4x2=8,所以选D。
第九题:你要好好学学C语言的指针了,指针变量指向字符串用两种方式,一种就是A选项的指 针初始化,另一种就是先定义再赋值,比如说这个题目的另一种方式是: char *p;p=s;
希望能够帮到你
追问
你怎么知道a[4]-a[0]=4?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式