64,559
社区成员
发帖
与我相关
我的任务
分享
int ia[3][4];
typedef int int_array[4];
int_array *ip = ia;
for(int_array *p=ia; p!=ia+3; ++p)
for(int *q=*p; q!=*p+4; ++q)
cout<<*q<<endl;
typedef int int_array[4];
int_array *ip = ia;
typedef int[4] int_array;
int_array *ip = ia;
for(int_array *p=ia; p!=ia+3; ++p)
for(int *q=*p; q!=*p+4; ++q)
cout<<*q<<endl;
for(int *q=p; q!=p+4; ++q)
for(int_array *p=ia; p!=ia+3; ++p)
for(int *q=*p; q!=*p+4; ++q)
cout<<*q<<endl;
#include <iostream>
using namespace std;
int ia[3][4];
typedef int int_array[4];//人家就是这么定义的
//定义函数指针 typede void (*FuncPoint)();
//int_array *ip = ia;
void main()
{
for(int_array *p=ia; p!=ia+3; ++p)
for(int *q=*p; q!=*p+4; ++q)//*p其实是一个4维的int数组,但是会被转化成指向首个元素的指针。
cout<<*q<<endl;
}
指针数组的指针是二级指针,数组就是由首元素地址代表的,需要它的地址那就是地址的地址,即指向数组的指针.
#include <iostream>
using namespace std;
int ia[3][4];
typedef int int_array[4];//人家就是这么定义的
//定义函数指针 typede void (*FuncPoint)();
//int_array *ip = ia;
void main()
{
for(int_array *p=ia; p!=ia+3; ++p)
for(int *q=*p; q!=*p+4; ++q)//*p其实是一个4维的int数组,但是会被转化成指向首个元素的指针。
cout<<*q<<endl;
}
#include <iostream>
using namespace std;
int ia[3][4];
typedef int int_array[4]; //人家就是这么定义的。
// 这样定义后的int_array就是一个一维的int素组,大小为4的新数据类型
//int_array *ip = ia;
// 上面这样,就定义了一个指向int_array数据类型的指针,因此ip相当于一个二维的int数组的起始地址
void main()
{
for(int_array *p=ia; p!=ia+3; ++p)
for(int *q=*p; q!=*p+4; ++q)//*p其实是一个4维的int数组,但是会被转化成指向首个元素的指针。
cout<<*q<<endl;
}
for(int_array *p=ia; p!=ia+3; ++p)// 遍历外层数组,其元素还是一个数组,要注意的是p是一个指向第一个内层数组的指针
for(int *q=*p; q!=*p+4; ++q) // 遍历内层数组,因为p是个指向数组的指针,所以对其解引用*p得到的是一个数组
cout<<*q<<endl;