回 帖 发 新 帖 刷新版面

主题:[讨论]今天又做错的题目

设有定义:struct sk
{int a;float b;}data,*p;
若有p=&data;,则对data中的a域的正确引用是
A.(*p).data.a    B.(*p).a
C.p->data.a    D.p.data.a
错误:您选择的是C,正确答案为B // 关于结构题实在没有什么心得如果可以把每一项都解释一下吧呵呵麻烦了。。


以下关于宏替换的叙述不正确的是:
A.宏替换只是字符替换    B.宏名无类型
C.宏替换不占用运行时间    D.宏替换不占用编译时间
错误:您选择的是B,正确答案为D //这个好像是个概念性的问题不过写在这里常复习一下吧


还有关于指针的如果大家又认为好的文章麻烦推荐一下

回复列表 (共2个回复)

沙发

呵呵,

p是指向结构体的指针

data.a 和p->a 是正确的

另外,(*P).a和data.a 是等价的,也是正确的

不能用 p.a

板凳

对于第一个问题,1楼正解.
第2个问题:#define在编译时期把所有定义的全部替换 
比如
#define pi 3.14
在程序中,如果有pi存在的话
那么在编译时期 所有的pi已经换成3.14

我来回复

您尚未登录,请登录后再回复。点此登录或注册