在刚开始接触到C++的时候一提到 指针P就会联想到一个箭头指向了一个地址,这是一个最为基础而且不算全面的理解,在后面的学习过程中总是能遇到类似指针的知识点,发现一个简单的指针包含的知识点很多。
下面就来介绍几个关于指针的知识点:
刚刚接触到C++的时候对于这三个符号表示困惑,好像是指针的意思,但是分不清楚他们之间的区别?
首先可以确定的是 P 是一个指针变量的名字,表示此指针变量指向的内存地址,既然P是一个变量那么,P的值就可以改变,也就是说P指向的内存地址也是可以改变的 。
而 *P表示指针指向的内存地址中存放的内容,而且这个地址中存放的内容一般是一个和指针类型一致的变量或常量
对于& 来说 我们之前经常会用这个符号来取地址, 所以 这样看来 &P就是指针P的地址
总的来说就是: p是一个指针变量,它指向另外一个内存地址,他指向的内存地址就需要用p来表示,那么 它指向的内存地址中存放的内容就用*P来表示
写法: const int * P;
理解: P指针是一个指向常量的指针,即指针所指向对象的值是常量
特点: 1.指针所指地址的值不能通过指针改变
2.所指的地址可以改变.
即 *P 不能 改变 P可是改变
写法: int * const P;
理解:P指针本身就是一个常量指针,
特点: 1.指针指向的地址不能改变
2.指针指向的地址的值可以改变
即: P不可改变 *P可以改变
写法: const int * const P;
理解:综合前两者指针是常量,指向的对象也是常量
特点: 指针指向的地址不能改变
该指针指向的地址的值也不能改变。
数组指针: 它是一个指针,是一个指向数组的指针
写法: int( *P)[4]
由上面可知是指针,是指向一个大小为4个整型的数组的数组指针
指针数组: 是一个数组