数值指针与指针数组

来源:互联网 发布:linux启动单个进程命令 编辑:程序博客网 时间:2024/05/16 08:39

数值指针和指针数组时C和C++中容易出错的问题,而且时间久了很容易混。下面讲解数组指针和指针数组的使用方法和记忆方法。

[1]指针数组

 

 

核心         :指针数组是个数组,数组中的每一个元素都是指针;

定义方式:type* arr[size];

 

定义例子:int * array[3].这是一个指针数组,每个元素都是一个指向整型数据的指针,在arr数组中共包含3个这样的指针。

使用例子:int* ptr=array[1];

 

 

 

[2]数组指针

 

 

核心         :数组指针是个指针,是一个指向数组的指针;

 

定义方式:type (*arr)[size];

注意定义中两种颜色个子代表的意义,灰色部分表示的是数组中存储的内容。

 

 

 

 

定义例子:int (*array)[3].这是一个数组指针,每个元素都是一个整型数据。

 

使用例子:int arr[3];

               array=arr;

 

 

现在通过一个例子来验证上面讲解的内容:

#include<iostream>
using namespace std;

int main()
{
 int* arr[3];//指针数组
 int a=1;
 int b=2;
 int c=3;
 arr[0]=&a;
 arr[1]=&b;
 arr[2]=&c;
 
 for(int i=0;i<3;++i)
  cout<<*arr[i]<<endl;
 
 int* (*ptr)[3];//定义数组指针,该数组指针又指向一个指针数组
 ptr=&arr;
 for(i=0;i<3;++i)
  cout<<*((*ptr)[i])<<endl;
 
 return 0;
 
}

 


 

运行结果:

1

2

3

1

2

3