C语言关于指针访问结构体数据的使用

来源:百度知道 编辑:UC知道 时间:2024/06/12 02:54:31
怎么访问结构体的成员数组的某一数据?
struct num{
int n;
char str[10];
}x;
x.str[5]='a';
char *p;
p=(char *)x;
我想用指针p访问x.str[5]的数据,应该怎么些代码?请高手赐教,谢谢!

呵呵,很简单,你只要把x堪称一块内存就可以了。

x相当于:

+---------------------------+

|1|2|3|4|1|2|3|4|5|6|7|8|9|a|

+---------------------------+

|---n---|---------str-------|

我们从图中可以看到n其实占了四个字节的内存,而str占了10个字节。

那么str[5]相当于从头开始算跳过了九个字节,那么p[9]就是正好是str[5]的地方,也可以 *(p + 9)形象的说明了跳过了9个字节。

struct num{
int n;
char str[10];
}x;

。。。

char * p;
p=&(x.str[5]);