c++题目在线等解释。谢谢!!!

1structstudent{intm;charname[8];floatscore;}stu,*p;系统为指向结构变量的指针p分配几个存储单元为什么答案是42struc... 1 struct student{ int m; char name[8]; float score;}stu,*p; 系统为指向结构变量的指针p分配几个存储单元 为什么 答案是4

2 struct s{int a; int b;}x[2]={{1,2},{3,4}},*p=x 表达式++p->a的值是2 表达式(++p)->a的值是3 求解为什么
3 有如下定义,把a的值赋给b 应选择B
struct
{int i; char c[5];}a={12,"345"},b; A. b.i=a.i;b.c=a.c B b=a C strcpy(a,b); D b={a.i,b.c} 为什么B对A错。
展开
 我来答
真畅游竹海
2013-06-20
知道答主
回答量:17
采纳率:0%
帮助的人:14.3万
展开全部
1 所有32位操作系统,一个指针变量的大小就是固定的4字节。64位操作系统指针变量大小为8个字节。
2 ++p->a等同++(p->a),p在这里指向x[0],x[0].a = 1,前++为2.
(++p)指向x[1],x[1].a=3
3 A错在不能对数组进行初始化后的其他直接赋值。B对是因为,b未初始化,可以由a来赋值。
折心灬小轩
2013-06-20 · TA获得超过543个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:107万
展开全部
1.32位机环境下,指针都占用四字节,因为32位机的地址总线为32根,一字节是8个bit,对应为8根线,所以指针变量占用四字节
2.-》的优先级高于++,++p->a相当于++(p->a),而(++p)->a就是(++p)->a,两者是不同的
3.应该是B错A对,结构体用引用成员时只能一个一个的应用,不能整体引用,和数组的道理都是一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
18081x
2013-06-20
知道答主
回答量:20
采纳率:0%
帮助的人:13.5万
展开全部
第1题:不管是int *p, char *p, float, struct student *p,只要是指针类型的都是4个字节,书上有讲 到。
第2题:++p->a,先执行p->a等于1,再执行++,就是2了
(++p)->a,先执行++p,等于&x[1],在执行后面的就是x[1].a=3
第三题:
对于这题,C语言中,字符数组的初始化可以直接赋值,A中的赋值是错误的,等你学C++后,string定义的字符数组可以那样赋值的。有空多看书。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飨宴_
2013-06-20 · TA获得超过131个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:97.7万
展开全部
1、指针本身占四个存储单元,与结构体变量无关;

2、->的优先级高于++;

3、A中字符数组c不能那样直接赋值,B是整个结构体赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式