指针加减

 double dArray[2] = {4, 8}, *p, *q;
 p = &dArray[0];
 q = p + 1;
 int n= q - p ; //n=1  指针加减,跟类型有关
 int m= (int)q - (int)p ;//m=8,指针的地址值进行加减,其实就是整数加减
 int k=(char*)q - (char*)p ;//k=8
 int j=(int*)q - (int*)p ;     //j=2; 

106:      double dArray[2] = {4, 8}, *p, *q;
00401368   mov         dword ptr [ebp-10h],0
0040136F   mov         dword ptr [ebp-0Ch],40100000h
00401376   mov         dword ptr [ebp-8],0
0040137D   mov         dword ptr [ebp-4],40200000h
107:      p = &dArray[0];
00401384   lea         eax,[ebp-10h]
00401387   mov         dword ptr [ebp-14h],eax
108:      q = p + 1;
0040138A   mov         eax,dword ptr [ebp-14h]
0040138D   add         eax,8
00401390   mov         dword ptr [ebp-18h],eax
109:      int n= q - p ;
00401393   mov         eax,dword ptr [ebp-18h]
00401396   sub         eax,dword ptr [ebp-14h]
00401399   sar         eax,3  //右移3位
0040139C   mov         dword ptr [ebp-1Ch],eax
110:      int m= (int)q - (int)p ;
0040139F   mov         eax,dword ptr [ebp-18h]
004013A2   sub         eax,dword ptr [ebp-14h]
004013A5   mov         dword ptr [ebp-20h],eax
111:      int k=(char*)q - (char*)p ;
004013A8   mov         eax,dword ptr [ebp-18h]
004013AB   sub         eax,dword ptr [ebp-14h]
004013AE   mov         dword ptr [ebp-24h],eax
112:      int j=(int*)q - (int*)p ;
004013B1   mov         eax,dword ptr [ebp-18h]
004013B4   sub         eax,dword ptr [ebp-14h]
004013B7   sar         eax,2
004013BA   mov         dword ptr [ebp-28h],eax

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值