C语言结构体里的成员数组和指针

struct test{
int i;
char *p;
}; struct test *str;
int a = ;
char *b = "ioiodddddddddddd"; str = (struct test *)malloc(sizeof(struct test));//结构体指针不为null
str->i = a;
str->p = b;
printf("%s\n",str->p); //输出ioiodddddddddddd
return ; --------------------------------------------------------
struct test{
int i;
char s[10];
};
struct test *str;
str = (struct test *)malloc(sizeof(struct test));//结构体指针不为null
printf("%x\n",str); //输出 72403170
printf("%x\n",str->s); //输出 72403174
return 1;

参考:http://developer.51cto.com/art/201404/434678_all.htm

总结:不管结构体指针是否为null,访问结构体成员数组得到的其实都是成员数组的相对地址;访问成员指针得到的是相对地址存储的变量(地址)所指向的内容。

上一篇:沉淀再出发:java中注解的本质和使用


下一篇:沉淀再出发:关于netty的一些理解和使用