C++--问题10--数组指针和指针数组

C++--问题10--数组指针和指针数组


1.数组指针

        数组指针本质是指针,是指向数组的指针,代表它是指针,指向整个数组。

2.指针数组

       指针数组本质是数组,是指一个数组里面装着指针。

例1:程序输出

#include 
#include 
using namespace std;
int main()
{
	int v[2][10] = {
    {1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}};
	int (*a)[10] = v;//数组指针
	cout << **a << endl; 
	cout << **(a+1) << endl;
	cout << *(*a+1) << endl;
	cout << *(a[0]+1)<< endl;
	cout << *(a[1] )<< endl;
	return 0;
}

结果如下图:

C++--问题10--数组指针和指针数组_第1张图片

C++--问题10--数组指针和指针数组_第2张图片

本题定义一个指针,指向一个10个int元素的数组。a+1代表a指针向后移动1*sizeof(数组大小),所以**(a+1)指向11;a+1向后移动40个字节,*a+1仅针对织一行向后移动4个字节,所以*(*a+1)指向的是2,a[0]代表指针指向第一行其实位置,所以*a[1]的值是11。

(1)一个整型数   int a;

(2)一个指向整型数的指针   int *a;

(3)一个指向指针的指针,它指向的指针是指向一个整型数  int **a;

(4)一个有10个整型数的数组    int a[10];

(5)一个有10个指针的数组,该指针是指向一个整型数的     int *a[10];

(6)一个指向有10个整型数的数组的指针     int (*a)[10];

(7)一个指向函数的指针,该函数有一个整型参数并返回一个整型数   int(*a)(int);

(8)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数      int (*a[10])(int);

 

你可能感兴趣的:(C++)