指针相减
来源:互联网 发布:法国华人 知乎 编辑:程序博客网 时间:2024/05/16 06:36
指针相减问题
最近学习指针时,有一道练习题如下,可以加深自己对指针的理解和使用。
#include <stdio.h>int main(){ int a[] = {1,2,3,4}; int *p1 = a; int *p2 = &a[3]; printf("%d\n",p2-p1); return 0;}
问:p2-p1=?
这里我们要注意的是:指针相减 =相差的位数 = 字节/步长
上面的程序中,int为4个字节,步长为4,p2与p1总共相差12个字节
12 / 4 = 3
结果应为3
运行如下:
[Jim@localhost ~]$ gcc pointer.c -o pointer
[Jim@localhost ~]$ ./pointer
3
[Jim@localhost ~]$
另外一个示例程序:
#include <stdio.h>int main(){ int a[] = {1,2,3,4}; char *p1 = a; char *p2 = &a[3]; printf("%d\n",p2-p1); return 0;}
结果为:12 / 1 = 12
阅读全文
0 0
- 指针相减
- 指针相减
- 两个指针相减
- C指针相减
- 指针相减
- 指针相减
- 两个指针相减
- 指针相减问题
- 两个指针相减
- 指针相减
- C++ 指针相加相减
- 指针相减的运算
- C语言指针相减
- 二指针相减是什么
- 指针相减的意义
- C++指针加整数、两个指针相减的问题
- C指针加整数、两个指针相减的问题
- C++指针加整数、两个指针相减的问题
- 线性表的顺序静态存储--C语言实现
- JDK动态代理
- cookie与session
- Thinkphp5 自定义分页样式显示页码和数量
- 【Android开发技巧】Android7.0新签名对多渠道打包的影响
- 指针相减
- 6·RHCSA任务计划
- 透彻分析C/C++中memset函数
- C语言文件操作详解
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- -bash :gradlew command not found
- 2017.11.9模拟赛
- linux环境下的重要目录
- 数据结构-链栈的基本操作