二级共用体结构体的一些问题
题目1:利用共用体的特点分别取出int变量中高字节和低字节中的两个数,运行本程序,输出结果是??(这个题目我重点是看不懂main函数里面那一块,不理解他表达的意思,求下指点。)
#include <stdio.h>
union change
{
char c[2];
int i;
}un;
main()
{un.i=26984;
printf("%d,%c\n",un.c[0],un.c[0]);
printf("%d,%c\n",un.c[1],un.c[1]);
}
题目2:下面程序运行的结果是? (我自己做的答案是53,但是二级书本上的标准答案是73,想看看大家的意见,求指点。)
#include "stdio.h"
struct ks
{
int a;
int *b;
};s[4]; *p;
main()
{
int n=1,i;
printf("\n");
for(i=0;i<4;i++)
{
s[i].a=n;
s[i].b=s[i].a;
n=n+2;
}
p=&s[0];
p++;
printf("%d,%d\n",(++p)->a,(p++)->a);
}
题目3:若已经定义: (我这个题目重点是看不懂pn->b/n.a*++pn->b想要表达的意思,求指点)
struct num
{ int a;
int b;
float f;}
n={1,3,5.0};
struct num *pn=&n;
则表达式pn->b/n.a*++pn->b的值是多少?
[ 本帖最后由 小小飞机 于 2012-7-15 17:55 编辑 ]