您的位置:首页 > 其它

指针数组与数组指针问题

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: