能力值:
( LV2,RANK:10 )
|
-
-
2 楼
#include <stdio.h>
#include <iostream.h>
#pragma pack(1)
typedef struct stu
{
int a;
int b;
}stu,*pstu;
int main(){
char a='a';
int *c;
stu s;
s.a=8;
s.b=9;
cout<<&s<<endl;
cout<<&(s.a)<<endl;
cout<<&(s.b)<<endl;
c=(int*)((long)&s.a+0x04);
cout<<*c<<endl;
c=(int*)((long)&s+0x04);
cout<<*c<<endl;
return 1;
}
&s+0x04 想把它转换成s.b的地址 要先把地址看做LONG 再加上4;
不然看做结构的地址加上4 就是加上了4个S结构的长度;
这和 INT*P +1和 CHAR *P +1
(即使P一致,但是执行加1后就不同了)
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢楼上 学习了
|
|
|