对C++中指针初始化的一些认识

来源:互联网 发布:java分布式技术架构图 编辑:程序博客网 时间:2024/05/09 08:47

声明完了指针,这个时候指针变量中还没有确定的地址(内容),如果冒然使用,可能会引起一些不可收拾的错误,因此在声明指针后,一定要进行初始化赋值,赋值之后才能使用指针变量。

1指针赋值的方式:

1>     声明的同时初始化:形式为 数据类型 *标示符=变量地址;

2>     先声明后赋值:形式为 数据类型 *标示符;

                         标示符=变量地址;

2要取变量的地址,就需要使用“&”符号,这个符号可以取基本数据类型变量的地址,也可以取类类型的对象的地址,使用方式:&变量名。

3进行地址赋值前,要确保变量在赋值之前就声明过,才可以使用这个变量。

4数组名其实就是一个数组的首地址,也可以看成是一个指针常量,不能改变。

5*的使用:在声明语句中,就是声明指针的作用,在执行语句中,就是取这个指针变量中的地址中的变量内容的作用。

6指向常量的指针:指针若指向常量,则指针所指向的地址中的内容不能改变,但指针本身可以改变,例子:

int a;

const int *ptr;=&a;//声明了一个指向int型常量的指针

int b;

*ptr=&b;//正确,指针变量本身可以改变

b=a;//错误,指针指向的常量不能再赋值

7指针类型的常量:指针本身不能改变。例子:

int *constptr=&a;//声明了一个指针常量

*ptr=&b;//错误,指针常量本身不能再赋值

8void类型的指针:一般来说,哪种类型的指针就用来存储哪种类型的变量的地址,但void类型的指针通吃,也就是各种类型的变量地址都可以存储,因此若变量的类型不太明朗的时候,就把指针声明为void类型的,最后再进行显示类型转换,进行访问变量。例子:

#include<iostream>

using namespacestd;

int main(){

   void *pv;

   int i=5;

   pv=&i;                              //存储了int型变量的地址

   int *pint=static_cast<int *>(pv);          //显示类型转换并初始化另一个指针

  cout<<"*pint="<<*pint<<endl;

   return 0;

}

这就是有关指针初始化的一些知识。

以上就是我对于指针初始化的一些认识。

   

0 0