资讯详情

【逆向|C语言】C语言指针相减比大小和数组的关系

一.指针相减

1.两个指针相减,说明有符号。先用两个目标数减,再除以,去掉变量名,去掉一个*数字,除以多少

int fun() {     short*p;     short*p1;     short a;     short b;     p=&a;     p1=&b;     if(p-p1)     {         a  ;     }     return 0; }

上面的代码汇编如下图所示

如图所示,sub先减 sar右移,相当于除以.

2.只有相同类型的指针才能减少

如图所示,不同类型不能相减

二.指针比大小

指针比大小时无符号

int fun() {  short*p;  short*p1;  short a;  short b;  p=&a;  p1=&b;  if(p>p1)  {a  ;  }  return 0; }

上述代码反汇编如下图所示:

jbe,无符号小于等于,代表指针比大小时无符号

三.数组指针的针

int fun() {  int*p;  int a[5];  int b;  a[0]=1;  a[1]=2;  a[2]=3;  a[3]=4;  a[4]=5;   p=a;  /*b=*(p 0);*///p[0]  b=p[4];  return 0; }
int fun() {  int*p;  int a[5];  int i;  for (i=0;i<5;i  )  {   a[i]=i;  }  p=a;  for (i=0;i<5;i  )  {   printf("%d\n",p[i]);  }   return 0; }

上述一维数组转换相对简单,p=a解释一下,其他的都很简单,p=a数组的变量名是数组的地址,也可以写成这样,p=&a[0]


今天的文章到此为止。如果你什么都不懂,欢迎和我交流。我一定知道一切。这篇文章也付出了一定的努力。喜欢的朋友可以表扬和关注。非常感谢!

标签: tr35jbe0330电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司