C语言指针结构及共体类型扫盲题

本文由用户“zhouwangluo”分享发布 更新时间:2022-08-05 20:20:56 举报文档

以下为《C语言指针结构及共体类型扫盲题》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

本文说明(约定)及图例:

1 . 本文所涉及的变量(包括指针变量),若不加特别说明均以Turbo C为参考基准。(省得有人抬扛或引发激烈争吵),比如谈到int型就认为它有2字节,尽管有些系统的规定可能不一样。并且stdio.h及conio.h这两个头文件会在程序中省略不写,若需运行程序请自行加上。



2. 本文所涉及的指针类型只涉及普通指针及多层指针(指针的指针的…的指针),不考虑far指针和huge指针。本文所涉及的地址,均为合理的假设值。

3. 图例及说明

图例举例

在本文所表示的意义、说明





一个占4个字节的空间(一小格代表一个字节)





一个占4字节的结构体空间,这个结构体包括两个域,每个域2字节





一个占100字节的空间





一片空间,长度不定,存的是函数fun()的代码





一个占4字节的结构体,有两个a和b字段(域),a占2字节,b占2字节





一个变量P,长度4字节,存的数据是 0x123400FF

*为了简化问题,除非特别说明,否则就不考虑机器放数据的先后顺序,而是照人类习惯





一个变量P,长度4字节,但里面存的数据不确定(随机值)





一个变量P,长度4字节,起始地址0x001234,P是个指针变量,存的是地址0x1234,这个地址指向另一片4字节的空间,空间对应的变量是X,空间首地址(也是X的首地址)0x123400FF,但空间的内容不确定。(文字有点长,结合图来看看吧)

这个图示可以对应这两句:long X; long *P=&X;





这个跟上面的类似,不过,P指向的不再是整个X,而是指向了X的前两个字节(当然首地址也是0x1234FF)。

这个图示可以对应这两句:

long X; int *P=(int*)&X; (前提:int为2字节)



 请一定一定要

先看前面的“本文说明”

再看题目!!!!

题目在下一页开始… 题01.下面是段程序的代码及输出结果:

程序代码

输出



int main(){

char *cp; int *ip;

short *sp; long *lp;

float *fp; double *dp;

void *vp; FILE *Fp;

printf("%d\t%d\n",sizeof(cp),sizeof(ip));

printf("%d\t%d\n",sizeof(sp),sizeof(lp));

printf("%d\t%d\n",sizeof(fp),sizeof(dp));

printf("%d\t%d\n",sizeof(vp),sizeof(Fp));

getch();

return 0;

}





根据上述,其中sizeof()是一个测量变量长度的函数,则以下说法有哪些正确?

A.程序代码中所列举的几种指针变量的长度均一样

B.程序代码中所列举的几种指针变量的长度碰巧一样

C.这个程序的变量未初始化所以里面的值是随机值,程序输出不具备参考价值

题02. 指针表示的是一个变量的首地址,也就是数据从哪里开始存放。那么,假如上题中的A项是正确的,声明指针时,比如char *cp; 这一句中,里面的char类型有什么用?

没作用,只不过是让程序员记住这个指针指向的是个char

因为指针表示的是首地址,所以系统通过声明语句的char类型 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 是通过写程序来把这些问题解决了的,也就是说,与其说是题目,还不如是我的一种心得总结,只不过是以题目的形式放出来,同时也让看这篇文章的初学者有一个自已思考的机会。

至于说题目的答案就不给了,因为题目的答案就在题目之中,或是四个备选答案中(都是选择题!估计这些答案,不管正确与否,都能给你一点启示)

说太长了,简单地说,也就两个重点:第一,我解决了上面的几个问题(虽是自已想出的问题)后,指针我就算过关了,并可以解决几乎所有的指针问题(高手级别的就算了,不过我还没遇到过~~);第二,不要找我要答案。

2010.7.5

2010.07.22 17:16 修正了“本文说明(约定)”中的两个错误图示

[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《C语言指针结构及共体类型扫盲题》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览