指针数组和数组指针
Posted clwsec
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针数组和数组指针相关的知识,希望对你有一定的参考价值。
指针数组和数组指针
- 指针数组:数组的每一个元素都是指针,故所占内存的小和机子位数有关。
- 数组指针:数组的指针,即指向一个数组的指针就是数组指针,对应的是二维数组。
具体就不细说了,主要是分得清,不要弄混了,直接看下面的例子
例子
#include<iostream>
using namespace std;
int main()
{
//定义数组
int arr1[3];
int arr2[3][10];
//数组指针
int *p1 = arr1;
int(*p2)[10] = arr2;
//首地址
cout << arr1 << " " << p1 << " " << &arr1[0] << " " << &p1[0] << endl;
//第二行的首地址
cout << arr1 + 1 << " " << p1 + 1 << " " << &arr1[1] << " " << &p1[1] << endl;
//首地址
cout << arr2 << " " << p2 << " " << p2[0] << " " << &p2[0][0] << endl;
//第二行的首地址
cout << arr2 + 1 << " " << p2 + 1 << " " << p2[1] << " " << &p2[1][0] << endl;
//arr2[1][1]的地址
cout << arr2[1] + 1 << " " << p2[1] + 1 << " " << &p2[1][1] << " " << &(*(*(p2 + 1) + 1)) << endl;
//指针数组,下面三种写法效果一样
int *(n1[10]); //指针大小32位机为4,64位机为8
int *(n2)[10];
int *n3[10];
cout << sizeof(n1) << " " << n1 << " " << n1 + 1 << " " << &n1[2] << endl;
cout << sizeof(n2) << " " << n2 << " " << n2 + 1 << " " << &n2[2] << endl;
cout << sizeof(n3) << " " << n3 << " " << n3 + 1 << " " << &n3[2] << endl;
system("pause");
return 0;
}
运行结果:
区别和相关用法如上,可对比查看。
更多
1.指针数组与数组指针详解
2.让你不再害怕指针——C指针详解(经典,非常详细)
以上是关于指针数组和数组指针的主要内容,如果未能解决你的问题,请参考以下文章