C语言指针
来源:互联网 发布:海蓝之谜淘宝旗舰店 编辑:程序博客网 时间:2024/06/07 12:55
指针的运算(总结):
1.不同类型的指针之间的运算没有意义。
对于相同数据类型的指针来说,一方面是与数字的加减,一方面是指针间的加减:
2. 指针变量中存放的是地址值,也就是一个数字地址,例如某指针变量中的值是0x2000 0000,表示表示此指针变量存放的是内存中位于0x20000000地方的内存地址。指针变量可以加减,但是只能与整型数据加减,此时加减的含义并不是其地址值进行了加减,也就是说如果指针变量p的值是0x20000000,那么p=p+2;的值并不是0x2000 0002,并不是地址值的简单相加减,那么地址值加减多少是与指针指向的数据类型相关联的:如果在64位的操作系统上,p是指向整型数据的指针变量,那么p=p+2之后,p的存储的地址值变成0x2000 0008;同理,如果在32位的操作系统上,p是指向整型数据的指针变量,那么p=p+2之后,p的存储的地址值变成0x20000008,也就说实际上地址值加了sizeof(int)*2这么多。说明白点,我们加减的数字是以指针指向的数据类型为量度的,p+2表示p在内存中前移两个int的距离,如果p不是int类型,而是其他类型道理也是一样。同样指针与整型数据相减也是同样的道理。
2. 指针之间可以相减,但不可以相加(相加没任何意义):两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数),例如对于int类型的指针p和p1。p1-p的意义表示他们之间相隔多少个int类型的元素。
3. 指针之间可以比较大小。但是同样也限于两个相同类型的指针变量,不同类型的指针变量之间比较大小没有任何意义。指针之间的大小比较的意义,表示在内存中他们指向的位置的高低关系。
阅读全文
0 0
- C语言中的指针
- C语言指针问题
- C语言野指针
- C语言之指针
- C语言指针简介
- C语言的指针
- c语言指针点滴
- C语言的指针
- c语言指针简介
- c语言 数组 指针
- c语言指针详解
- 理解C语言指针
- c语言函数指针
- C语言指针
- C语言之指针
- c语言指针详解
- c语言中的指针
- C语言--指针,数组
- 常用meta整理
- Firetruck UVA
- python mysqldb使用小记
- Git 常用命令速查表(三)
- css的div垂直居中的方法,百分比div垂直居中
- C语言指针
- 五、Spring Cloud 的 Zuul 网关组件
- 类的卸载
- 【语意分割】[文章阅读]DeconvNet
- linux yum 命令
- 一致性哈希算法(用于解决服务器均衡问题)
- linux-01-linux中的一些特殊符号
- c/c++笔试面试题及解析
- Git 操作实战示例(四)