float (* pf)[10]跟 float* pf[10]有什么不同啊该如何解决
float (* pf)[10]跟 float* pf[10]有什么不同啊
感觉有点迷糊啊
------解决方案--------------------
float (* pf)[10] //pf表示指向数组的指针
float* pf[10] //pf表示指针数组,即数组元素本身是指针
------解决方案--------------------
指向数组的指针
指针数组
------解决方案--------------------
#include <iostream>
using namespace std;
int main()
{
float(*pf1)[10];
float fa[10] = {1,2,3,4,5,6,7,8,9,10};
pf1 = &fa; //pf1是指向含有10个元素的数组指针
for(int i = 0; i < 10; i++) cout < <(*pf1)[i] < <endl;
return 0;
}
指针数组就是存放指针的数组,
------解决方案--------------------
float* pf[10] //表示有一个10个float的数组,数组中每个float都是指针型的,也就是说pf[0]保存的是实际float的地址
float (* pf)[10] //pf表示指向一个有10个float数组的首地址。换个方式理解:(*pf)[10]=a[10] -> (*pf)=a -> pf=&a
#include <iostream>
using namespace std;
void main()
{
int a[3] = {1,2,3};
int a1[2][3] = {{1,2,3},{4,5,6}};
int *b[3];
b[0] = &a[0]; //这里每个b[0]作为一个int指针,对指针赋值就要找一个int变量的地址,也就是&a[0]
b[1] = &a[1];
b[2] = &a[2];
cout < < *b[0] < < '\t ' < < *b[1] < < '\t ' < < *b[2] < < endl;
cout < < "------ " < < endl;
int (*c)[3];
c = &a1[0]; //这里表示c是一个指向具有4个int型数组的首地址
++c = &a1[1];
c--; //注意:这里的c的位置需要重新定位于最初的位置
cout < < (*c)[0] < < '\t ' < < (*c)[1] < < '\t ' < < (*c)[2] < < endl;
c++;
cout < < (*c)[0] < < '\t ' < < (*c)[1] < < '\t ' < < (*c)[2] < < endl;
}
------解决方案--------------------
float (* pf)[10]跟 float* pf[10]有什么不同啊
--------------------------------------------
第一种情况float (* pf)[10]:pf是指向一个“长度为0的一维数组”的指针;
第二种情况float* pf[10]:pf是一个数组名称,这个数组的元素类型是“float*”;
感觉有点迷糊啊
------解决方案--------------------
float (* pf)[10] //pf表示指向数组的指针
float* pf[10] //pf表示指针数组,即数组元素本身是指针
------解决方案--------------------
指向数组的指针
指针数组
------解决方案--------------------
#include <iostream>
using namespace std;
int main()
{
float(*pf1)[10];
float fa[10] = {1,2,3,4,5,6,7,8,9,10};
pf1 = &fa; //pf1是指向含有10个元素的数组指针
for(int i = 0; i < 10; i++) cout < <(*pf1)[i] < <endl;
return 0;
}
指针数组就是存放指针的数组,
------解决方案--------------------
float* pf[10] //表示有一个10个float的数组,数组中每个float都是指针型的,也就是说pf[0]保存的是实际float的地址
float (* pf)[10] //pf表示指向一个有10个float数组的首地址。换个方式理解:(*pf)[10]=a[10] -> (*pf)=a -> pf=&a
#include <iostream>
using namespace std;
void main()
{
int a[3] = {1,2,3};
int a1[2][3] = {{1,2,3},{4,5,6}};
int *b[3];
b[0] = &a[0]; //这里每个b[0]作为一个int指针,对指针赋值就要找一个int变量的地址,也就是&a[0]
b[1] = &a[1];
b[2] = &a[2];
cout < < *b[0] < < '\t ' < < *b[1] < < '\t ' < < *b[2] < < endl;
cout < < "------ " < < endl;
int (*c)[3];
c = &a1[0]; //这里表示c是一个指向具有4个int型数组的首地址
++c = &a1[1];
c--; //注意:这里的c的位置需要重新定位于最初的位置
cout < < (*c)[0] < < '\t ' < < (*c)[1] < < '\t ' < < (*c)[2] < < endl;
c++;
cout < < (*c)[0] < < '\t ' < < (*c)[1] < < '\t ' < < (*c)[2] < < endl;
}
------解决方案--------------------
float (* pf)[10]跟 float* pf[10]有什么不同啊
--------------------------------------------
第一种情况float (* pf)[10]:pf是指向一个“长度为0的一维数组”的指针;
第二种情况float* pf[10]:pf是一个数组名称,这个数组的元素类型是“float*”;