|
发表于 2020-3-7 12:56:32
|
显示全部楼层
更一下帮助理解的code:
- int a[] = { 1,2,3,4,5 };\
- int* p1 = (int *)&a;
- int(*p2)[5] = &a;
- TRACE(traceAppMsg, 0, "p1=0x%p\n", p1);
- TRACE(traceAppMsg, 0, "p2=0x%p\n", p2);
- TRACE(traceAppMsg, 0, "sizeof(p1)=%d\n", sizeof(p1));
- TRACE(traceAppMsg, 0, "sizeof(p2)=%d\n", sizeof(p2));
- TRACE(traceAppMsg, 0, "sizeof(p1[0])=%d\n", sizeof(p1[0]));
- TRACE(traceAppMsg, 0, "sizeof(p2[0])=%d\n", sizeof(p2[0]));
- TRACE(traceAppMsg, 0, "sizeof(p2[0][2])=%d\n", sizeof(p2[0][2]));
- TRACE(traceAppMsg, 0, "p1 + 1=0x%p\n", p1 + 1);
- TRACE(traceAppMsg, 0, "p1 + 2=0x%p\n", p1 + 2);
- TRACE(traceAppMsg, 0, "p1 + 3=0x%p\n", p1 + 3);
- TRACE(traceAppMsg, 0, "p2 + 1=0x%p\n", p2 + 1);
- TRACE(traceAppMsg, 0, "p2 + 2=0x%p\n", p2 + 2);
- TRACE(traceAppMsg, 0, "p2 + 3=0x%p\n", p2 + 3);
- TRACE(traceAppMsg, 0, "&p2[0] + 2=0x%p\n", &p2[0] + 2);
- TRACE(traceAppMsg, 0, "*(p1+2)=%d\n", *(p1+2));
- TRACE(traceAppMsg, 0, "*(p2+2)=%d\n", *(p2+2));
- TRACE(traceAppMsg, 0, "*(&p2[0] + 2)=%d\n", *(&p2[0] + 2));
- TRACE(traceAppMsg, 0, "&p1[2]=0x%p\n", &p1[2]);
- TRACE(traceAppMsg, 0, "&p2[2]=0x%p\n", &p2[2]);
- TRACE(traceAppMsg, 0, "&p2[0][2]=0x%p\n", &p2[0][2]);
- TRACE(traceAppMsg, 0, "p1[2]=%d\n", p1[2]);
- TRACE(traceAppMsg, 0, "p2[2]=%d\n", p2[2]);
- TRACE(traceAppMsg, 0, "p2[0][2]=%d\n", p2[0][2]);
复制代码
输出结果:
p1=0x000000609D13FA48
p2=0x000000609D13FA48
sizeof(p1)=8
sizeof(p2)=8
sizeof(p1[0])=4
sizeof(p2[0])=20
sizeof(p2[0][2])=4
p1 + 1=0x000000609D13FA4C
p1 + 2=0x000000609D13FA50
p1 + 3=0x000000609D13FA54
p2 + 1=0x000000609D13FA5C
p2 + 2=0x000000609D13FA70
p2 + 3=0x000000609D13FA84
&p2[0] + 2=0x000000609D13FA70
*(p1+2)=3
*(p2+2)=-1659635088
*(&p2[0] + 2)=-1659635088
&p1[2]=0x000000609D13FA50
&p2[2]=0x000000609D13FA70
&p2[0][2]=0x000000609D13FA50
p1[2]=3
p2[2]=-1659635088
p2[0][2]=3
|
|