c++——指针在数组中的应用

来源:互联网 发布:那个软件看火影没广告 编辑:程序博客网 时间:2024/05/16 06:07
#include<iostream>#include<stdlib.h>using namespace std;int main(){    int a[3] = { 1, 2, 3 };    int*p = a;//一维数组名指向数组首元素,指针p指向数组收元素    cout << *p << endl;    int*q = &a[0];//指针q指向数组首元素    cout << *q << endl;    int*e = a + 2;//指针e指向数组第三个元素    cout << *e << endl;    int*w = &a[2];//指针e指向数组第三个元素    cout << *w << endl;    cout << a[1] << endl;//以下四种方法均可得到数组的第二个元素    cout << *(a + 1) << endl;    cout << p[1] << endl;    cout << *(p + 1) << endl;    int b[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };//b是一个数组,b[0] b[1] b[2]是他的三个元素,这三个元素又分别都是包含四个元素的数组    cout << b << endl;//b是指向第一个数组元素的指针    cout << &b[0] << endl;//&b[0]=b    cout << b + 1 << endl;//b+1是指向第二个元素的指针,是数组指针,类型为int(*)[4]    cout << &b[1] << endl;    cout << *b << endl;//*b是指第一个数组元素,因第一个数组元素是个数组,所以指针b是一个数组指针,*b则指向第一个数组元素的第一个元素    cout << b[0] << endl;//*b=b[0],b[0]是第一个数组元素,它本身又是一个含四个元素的数组    cout << *(b + 1) << endl;//是第二个数组元素的第一个元素的指针,类型为int*    cout << b[1] << endl;    cout << *(*(b + 1) + 2) << endl;//是数组a[1]的第三个元素a[1][2]    cout << &b << endl;    cout << &b + 1 << endl;    system("pause");    return 0;}

总结:对于二维数组b
&b的类型为int(*)[3][4]
b+i的类型为int(*)[4]
(b+i)的类型为int
((b+i)+j)的类型为int
*(b+i)=b[i]
((b+i)+j)=*(a[i]+j)=a[i][j]

0 0