关于int * s[]和int (*s)[]的区别
关于int * s[]和int (*s)[]的区别,求大侠给详细的讲解,最好有例子
[解决办法]
我刚开始学的时候也不懂,当时看了一些例子帮助理解,希望能对你有帮助
#include<iostream>
using namespace std;
int main()
{
//指针数组,本身是数组,元素为指针
int line1[]={1,2,3};//定义数组
int line2[]={1,2,4};
int line3[]={1,2,5};
int* pLine[3]={line1,line2,line3};//指针数组,本身是数组,元素为指针
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
cout<<pLine[i][j]<<endl;//访问数组中的指针元素
cout<<endl;
}
}
//下面是数组指针,本身是指针,指向一个数组
int b[3]={1,2,3};
int (*p1)=b;//其实p1就是指针,指向一个一维数组
cout<<p1[1]<<endl;
int a[2][3]={{1,2,3},{2,3,4}};
int (*p2)[3]=a;//其实p2就是指针,指向一个二维数组
cout<<p2[1][1]<<endl;
return 0;
}
ps:数组指针,本身的声明要注意。一般不用数组指针,只要理解就行。希望对你有帮助
[解决办法]
#include <stdio.h>int *s1[3];//s1是由三个int *组成的数组int d1_0,d1_1,d1_2;int (*s2)[3];//s2中保存的是一个指向int[3]类型的指针int d2[3]={4,5,6};int main() { d1_0=0;s1[0]=&d1_0; d1_1=1;s1[1]=&d1_1; d1_2=2;s1[2]=&d1_2; s2=&d2; return 0;}