对结构体类型转换的一点理解
easyx吧
全部回复
仅看楼主
level 9
zhangjb90s 楼主

最近看书的时侯,发现结构体转换用的很多,有时候还特意的对某个结构体进行填充。之前对这个不是很了解,于是写了些测试的代码。
一.
#include <stdio.h>
#include <conio.h>

typedef struct test1
{
int
num1;
int
num2;
}test1;
typedef struct test2
{
int num3;
int
num4;
int
num5;
}test2;
int main()
{
test1 a;
test1
*p;
test2
b,*q;
p=&a;
q=&b;
a.num1=1;
a.num2=2;
b.num5=5;
q=(test2
*)&a;
printf("%d %d
%d\n",q->num3,q->num4,q->num5);
getch();
return
0;
}
结果:
1 2
1638280


二.
#include <stdio.h>
#include <conio.h>

typedef struct test1
{
int
num1;
int
num2;
}test1;
typedef struct test2
{

2012年11月05日 13点11分 1
level 12
嗯,熟练使用结构体对于提高编程有很大帮助。
2012年11月06日 05点11分 6
level 9
没参考价值,c是非常自由的语言,数据存储与数据读取完全分离,需要理解的是没种类型在内存中的存储方式,若只记类型,便落了下乘。话不好听,忠言逆耳!
2012年11月16日 00点11分 7
level 11
结构的显隐式转换,有构造函数,转换函数,explicit关键字帮助更好理解~!多练~~更有价值
2012年11月16日 03点11分 8
1