指针数组与数组指针问题
2014-07-02 08:19
337 查看
特别注意:*()可以与[]无条件等价
如:*(q)=q[0],*(q+1)=q[1],*(*(q+1)+1)=q[1][1]
指针数组
int a[2][3] = {};
int *pa[5] = {a[0],a[1]};
int *q[4];
q[0] = a[0];
q[1] = a[1];
5、行指针与列指针。
int a[2][3] = {};
int *q[3];
q = a;
q + 1; q指向的元素是一维数组,所以向下偏移一行。
*(q+1) :列指针,向后偏移一个数据。
q[1] = *(q + 1); 列指针。
应用:求数组和:
int main()
{
int a[3][4] =
{{7,10,-2,3},{14,30,6,-15},{0,5,27,-7}};
int *pa[3] = {a[0],a[1],a[2]} ;
int i,j,sum = 0;
for(i = 0;i <= 2;i ++)
{
for(j = 0;j<=
3;j++)
{
sum +=
*(pa[i] + j);// sum += *(*(pa + i) + j);
}
}
printf("sum = %d\n",sum);
return 0;
}
如:*(q)=q[0],*(q+1)=q[1],*(*(q+1)+1)=q[1][1]
指针数组
int a[2][3] = {};
int *pa[5] = {a[0],a[1]};
int *q[4];
q[0] = a[0];
q[1] = a[1];
5、行指针与列指针。
int a[2][3] = {};
int *q[3];
q = a;
q + 1; q指向的元素是一维数组,所以向下偏移一行。
*(q+1) :列指针,向后偏移一个数据。
q[1] = *(q + 1); 列指针。
应用:求数组和:
int main()
{
int a[3][4] =
{{7,10,-2,3},{14,30,6,-15},{0,5,27,-7}};
int *pa[3] = {a[0],a[1],a[2]} ;
int i,j,sum = 0;
for(i = 0;i <= 2;i ++)
{
for(j = 0;j<=
3;j++)
{
sum +=
*(pa[i] + j);// sum += *(*(pa + i) + j);
}
}
printf("sum = %d\n",sum);
return 0;
}
相关文章推荐
- 漫步IOS--指针细节2:*与&、指针初始化问题、指针数组和数组指针
- 指针数组、数组指针、memset填充问题
- 指针数组与数组指针,一切都是指针问题
- 关于数组指针,指针数组和字符串数组的一些问题
- C#调用c++Dll结构体数组指针的问题
- 指针数组 指向数组的指针
- CString及Char指针和数组的问题
- 指针数组和数组指针
- 数组、数组名和指针问题
- 一道一维数组与二级指针的问题
- 指针数组和数组指针
- 数组指针问题,看起来简单做起来复杂,大家帮忙啊!
- 关于指针数组和数组指针的一点心得!
- CString 及char 指针和数组的问题(转)
- 指针数组和数组指针
- 指针数组与指向数组的指针
- (转)数组名与指针问题
- 指针数组与数组指针的使用
- 字符指针与字符数组的存储问题
- 二维字符数组与二维整型数组在内存中的分配及指针的问题