指针基础知识(二)
来源:互联网 发布:人的音域 知乎 编辑:程序博客网 时间:2024/04/30 16:30
指针运算是以指针变量所存放的地址量作为运算量进行的运算。
指针运算的实质是地址的运算。
注意:指针运算的种类有限,只能进行算术运算,关系运算和赋值运算。
1.指针的算术运算
(1)这种运算与指针指向数据类型有着密切的关系,例如一个指针px,当执行px++时,如果px指向的数据类型是char型的时候,指针的偏移量为1个字节,当指向的数据类型为int型的时,指针的偏移量为四个字节。
px+n;//表示的实际位置的地址量是(px)+sizeof(px的数据类型)*n;
<strong>/**实现字符串的复制*/#include <iostream.h>void strcpy(char *ps,char *pt){while((*pt=*ps)!='\0'){pt++,ps++;}}void main(){char str1[] ="hello!",str2[10];strcpy(str1,str2);cout<<str2<<endl;}</strong>(2)两个指针相减,设px和py是具有相同数据类型的两个指针,他们指向同一组数据,px-py运算的结果是两个指针指向的地址位置之间相隔数据个数。因此两个指针相减,不是两个指针持有的地址相减的结果。公式如下:
[(px)-(py)]/数据类型的字节长度
/**统计字符串的长度*/#include <iostream.h>void main(void){char str[20];char *pc;cout<<"enter a string:";cin>>str;pc=&str[0];//等价于pc=strwhile(*pc++!='\0'){}int count=pc-str-1;cout<<count<<endl;}
2.指针的关系运算
两个指针之间的关系运算表示它们指向的地址位置之间的关系。一般来说,指针与一般整数之间的关系运算是没有意义的。但是指针可以和0之间进行等于和不等于的运算:
pa==0或pa!=0
可以用于判断pa是否为一个空指针。
3.指针的赋值运算
当为指针赋值时,右边的表达式必须为地址量。
0 0
- 指针基础知识(二)
- 基础知识复习二 --- 指针(Jun18)
- C语言基础知识之(二十):指针高级运用
- 指针基础知识(一)
- .NET基础知识(二)
- java 基础知识(二)
- oracle基础知识(二)
- c#基础知识(二)
- JActor基础知识(二)
- OpenLayers基础知识(二)
- php基础知识(二)
- MakeFile基础知识(二)
- PHP基础知识(二)
- PHP基础知识(二)
- Java基础知识(二)
- JSP基础知识(二)
- HTML5 基础知识(二)
- CSS 基础知识(二)
- Windows/Linux 安装pip
- matlab 学习备忘
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接---个人整理
- 为什么js 3>2>1 为false,1<2<3为true?
- Google 重叠实验框架:更多,更好,更快地实验
- 指针基础知识(二)
- codeforces 501C Misha and Forest(思维题)
- Android软件安全与逆向分析——Dex文件反汇编工具
- android Studio 简单设置
- throw与throws的区别&&继承extends
- ftp 出现Passive mode refused 解决办法
- Fedora 21 U盘制作及系统安装心得
- 打印小于N的所有素数(埃拉托色尼筛法)
- Spring官网和镜像下载地址