我是靠谱客的博主 想人陪可乐,最近开发中收集的这篇文章主要介绍指针简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        在C++中,也可以给内存中的数据创建“快捷方式”,即为指针(Pointer)。它和整型、字符型、浮点型一样,是一种数据类型。指针也是一种变量,在内存中也有地址。指针中存储的并不是所要调用的数据本身,而是所要调用的数据在内存中的地址

        同变量的数据类型类似,指针也有类型。之所以指针会有类型,是为了符合对应的变量或常量数据类型。不同指针类型的本质在于不同的操作。一个字符型数据在内存中占用一个字节,那么读取数据就应以字符型数据读出一个字节;一个长整型数据在内存中占用四个字节,那么读取数据时就应以长整型数据读出四个字节。如果指针类型与它所指向的数据类型不匹配,就可能对数据做出错误的操作。

        注意:指针本身也是一种数据类型

        在C++中,用&操作符可以获取变量在内存中的地址,称之为取地址操作符

        使用格式:&变量名或常量名

 

        声明指针变量:  int* iptr=&a; (a是一个int类型的变量)

        注意:声明多个指针变量时,必须在每个指针变量名前加上*,例如:

        int *iptr1 , *iptr2 , iptr3 ; //iptr1和iptr2是指向整型变量的指针变量,而iptr3是整型变量


        一个*只能修饰一个指针,所以:

        int* p1,p2;

        表示p1为指针变量,而p2则为整型变量。

        在一个定义语句中定义两个指针变量的方法为:

        int *p1,*p2;


        如果声明了一个指针却不对它作初始化,那么它所指向的内容也是无法确定的,而这种情况是十分危险的。

        如果在声明变量之后,找不到合适的地址进行初始化,可以将其初始化为空指针(NULL)(它的意思是“空”,即指针没有指向任何东西)。

        比如:int *iptr=NULL;   或是  int *iptr=0;

        要注意的是,C++是大小写敏感的,NULL与null是不同的。所以,在使用的时候必须要大写。

 

        间接引用操作符( * ),作用是获取指针所指向的变量或存储空间。间接引用的指针可以作为左值。具体的使用格式为:*指针变量名

 

        不能将一个常量的地址赋值给一个对应类型的指针变量,因为这样可能导致通过指针更改常量,所以是不合法的。

 

指针的操作和运算:

        对于指针类型来说,可以使用的运算有:和整数做加法运算、和整数做减法运算、两指针做关系运算。

 

       指针和整数C的加减法是指针向前或向后移动C个对应类型的存储区域,即可以得到以下公式:

       新地址=旧地址±C*每个对应数据类型的变量在内存中所占字节数

       (因为每个int变量在内存中所占字节数为4,所以对一个int类型的指针做一次加减法,两次地址相差4 )

 

        关系运算有等于、大于、小于、大于等于、小于等于和不等于六种。对于指针来说,等于和不等于就是判断两个指针的值是否相同或不同,即两个指针是否指向了相同或不同的地方。而大于和小于是判断指针的值哪个大哪个小。值较小的在存储器中的位置比较靠前,值较大的在存储器中的位置比较靠后。

最后

以上就是想人陪可乐为你收集整理的指针简介的全部内容,希望文章能够帮你解决指针简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部