深入理解C指针学习笔记(四)
2016-03-24 21:20
267 查看
1.3指针操作符
指针常用的操作符如下表:1.31指针的算数运算
数据指针可以执行以下几种算术运算:给指针加上整数
从指针减去整数
两个指针相减
比较两个指针
1.给指针加上整数
给指针加上一个整数实际上加的是这个整数与指针所指的数据类型所占字节的乘积。指针可以使用+,他也可以利用+=运算符给指针加上一个偏移量。int* IPtr; char* CPtr; IPtr = Iptr + 4;//加上的数是sizeof(int)*4 CPtr = CPtr + 4;//加上的数是sizeof(char)*4
在使用指针加操作的时候要注意数组的越界问题,数组越界可能会导致出现垃圾数据或者导致程序中断。
2. void指针和加法
一般情况下,大部分编译器允许给void指针做算术运算,假设void指针的长度为4,则给void指针加上1后其地址加4.3.从指针减去整数
指针减去整数的规则与加上整数的规则类似。指针减去整数实际上是减去这个整数乘上它指向的数据类型的大小。4指针相减
一个指针减去另一个指针得到的结果实际上是是(两个指针的实际差值)/(指针指向的数据类型的大小).指针相减主要作用是判断两个元素的顺序,int number[10]; int* iPtr1 = &(number[0]); int* iPtr2 = &(number[2]); printf("%d\n", iPtr2 - iPtr1);//输出结果为2 void *vptr1 = iPtr1; void *vptr2 = iPtr2; printf("%d\n", vptr2 - vptr1);//输出结果8
ptrdiff_t类型表示两个指针差值的可移植方式。将两个指针的差值以ptrdiff_t类型返回。因为指针长度可能不同。这个类型简化了处理差值的任务。
int num[10] ={5}; int *pv = # int *pv2 = &(num[2]); ptrdiff_t diff = pv2 - pv; printf("%d\n", diff);
1.32比较指针
使用比较符号主要作用是比较数组中元素的顺序相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Lua和C语言的交互详解
- Lua中关系运算符的使用教程
- Lua学习笔记之运算符和表达式
- C#运算符重载用法实例分析
- C# Pointer指针应用实例简述
- sql server 2008中的apply运算符使用方法
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C#中38个常用运算符的优先级的划分和理解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法