求助c语言结构体结构体第一个成员地址和结构体对象的地....

2019-12-10 18:14发布

#include <stdio.h>
#include <stdlib.h>

typedef struct
{
    int mem[2];
} str_mem_ptr;

typedef struct
{
    int mem;
} str_mem_ptr2;

int main()
{
    str_mem_ptr p;
    str_mem_ptr2 p2;
    printf("%p, %p, %p ", &p, p.mem, &p.mem[0]);
    printf("%p, %p", &p2, p2.mem);
    return 0;
}

结构体第一个成员地址和结构体数组对象的地址一样,结构体第一个成员地址和结构体int对象的地址不一样, 请问这是为什么呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
foxpro2005
1楼-- · 2019-12-10 19:59
what's this ?    printf("%p, %p", &p2, p2.mem);

like this:
printf("%p, %p", &p2, &p2.mem);
ma_xiang
2楼-- · 2019-12-11 01:30
本帖最后由 ma_xiang 于 2019-10-5 11:28 编辑
foxpro2005 发表于 2019-10-5 11:19
what's this ?    printf("%p, %p", &p2, p2.mem);

like this:


YES YOU ARE RIGHT,MY BAD
hell-prototypes
3楼-- · 2019-12-11 06:04
p2.mem 是取值
2avr
4楼-- · 2019-12-11 11:18
这个问题就是作用域,
cht-rtos
5楼-- · 2019-12-11 12:16
 精彩回答 2  元偷偷看……
laujc
6楼-- · 2019-12-11 13:44
ma_xiang 发表于 2019-10-5 11:25
YES YOU ARE RIGHT,MY BAD

试一下2楼的,2楼应该是对的

一周热门 更多>