参考教材:C语言程序设计教程
例9-1:
short为短整形,占两个字节,而char占一个字节.于是有下面的一个程序:
#include <stdio.h>
int main()
{
unsigned short a;
unsigned short *pi=&a;
char *pc=(char *)&a;
*pi=0XF0F0;
*pc=0;
printf("a=%X",a);
}
这个程序开始没看懂,在仔细一看,原来是通过指针将低字节的值改变了,F0F0变成了F000,所以输出结果如下:
a=F000[1] + Done /usr/bin/gdb
为了验证,将高字节的内容变为00,让*pc+1,代码如下:
#include <stdio.h>
int main()
{
unsigned short a;
unsigned short *pi=&a;
char *pc=(char *)&a+1;
*pi=0XF0F0;
*pc=0;
printf("a=%X",a);
}
输出的结果为:
a=F0[1] + Done /usr/bin/gdb
也就是00F0,指针将指定位置的数值做出修改.