美文网首页
C指针相减

C指针相减

作者: 9a957efaf40a | 来源:发表于2021-05-13 17:46 被阅读0次

源代码:

int array[] = {1,2,3};
int *p = array;
int *q = array + 2;
int v = q - p;

汇编:

...
;从栈上取指针q的地址赋值给rax
0x100003f32 <+82>:  movq   -0x38(%rbp), %rax
;从栈上取指针p的地址赋值给rdx
0x100003f36 <+86>:  movq   -0x30(%rbp), %rdx
;rax-rdx结果赋值给rax. 这里rax等于0x8
0x100003f3a <+90>:  subq   %rdx, %rax
;rax算术右移2位,结果赋值给rax. 这里rax就是2
0x100003f3d <+93>:  sarq   $0x2, %rax
...

两个整型指针相减,结果是: 地址值差值 / sizeof(int)

相关文章

  • C指针相减

    源代码: 汇编: 两个整型指针相减,结果是: 地址值差值 / sizeof(int)

  • C语言20 结构体指针

    C语言20 结构体指针 探测结构体指针的特性 ++、-- 加法与减法 指针相减 使用结构体指针 结构体指针一定要指...

  • 9-指针与其他关系&结构体

    1.指针与数组 相减:两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。== (pointer2地址...

  • C初阶5:指针

    1. 指针运算 1.1 算术运算 加减+、-指针与整数相加:表示指针指向下个变量。指针与整数相减:表示指针指向上个...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • 带小白学C语言指针

    C语言里指针才是C语言的开始和指针;C语言里基本所有东西都是由指针演变而成; 指针是指向地址的变量,类型就是指针...

  • 学习笔记3(指针运算,函数参数与指针,数组指针,二级指针)

    一、指针运算 二、数组与指针 三、指针和函数参数 java中: C/C++中: 四、指针数组 五、 二级指针 六、...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

网友评论

      本文标题:C指针相减

      本文链接:https://www.haomeiwen.com/subject/wfdxjltx.html