您当前位置: 唯学网 » 计算机等级考试培训 » 三级专题

计算机等级考试三级指针运算知识点解析

来源:唯学网•教育培训(www.vixue.com)  【唯学网 • 中国教育电子商务平台】 加入收藏

2014年上半年(第39次)全国计算机等级考试将于2014年3月29日—31日举行,网上报名将于2014年2月18日开始。编需要提醒的是在报名时一定要避开高峰期,以免造成网络瘫痪等问题,最后在登陆确认是否报名成功。

本文介绍指针运算,任何数值一旦被强制转换,其类型就改变了。

struct test

{

int num;

char *pcname;

short sdate;

char cha[2];

short sba[4];

}*p;

假设p 的值为0x100000。如下表表达式的值分别为多少?

p + 0x1 = 0x___ ?

(unsigned long)p + 0x1 = 0x___?

(unsigned int*)p + 0x1 = 0x___?

p + 0x1 的值为0x100000+sizof(test)*0x1。至于此结构体的大小为20byte,前面的章节已经详细讲解过。所以p +0x1 的值为:0x100014。

(unsigned long)p + 0x1 的值呢?这里涉及到强制转换,将指针变量p 保存的值强制转换成无符号的长整型数。任何数值一旦被强制转换,其类型就改变了。所以这个表达式其实就是一个无符号的长整型数加上另一个整数。所以其值为:0x100001。

(unsigned int*)p + 0x1 的值呢?这里的p 被强制转换成一个指向无符号整型的指针。所以其值为:0x100000+sizof(unsigned int)*0x1,等于0x100004。

唯学网一家集教育资讯发布与院校教学管理系统于一体的多功能开放式综合教育服务平台,教育领域涵盖学历学位等十一个大类及上百个子类,因此考生如若获知关于计算机等级考试的任何资讯如计算机等级考试考试试题、计算机等级考试成绩查询、 计算机等级考试培训等,可随时关注唯学网计算机培训栏目,如有任何疑问也可在线留言,小编会为您在第一时间解答!

0% (0)
0% (10)
已有条评论
新闻浏览排行