指针和数组 [英] pointers and array

查看:81
本文介绍了指针和数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用双指针访问二维数组。


即int a [3] [3];

int ** p;


-

-

-

-

-




谢谢

Anthony

解决方案

Anthony Moss写道:


如何使用双指针访问二维数组。

即int a [3] [3 ];
int ** p;




int(* p)[sizeof * a / sizeof ** a] = a;
< br $>
-

pete





Anthony Moss写道:< blockquote class =post_quotes>如何使用双指针访问二维数组。

即int a [3] [3];
int ** p;




int(* p)[3];


示例:

#include< stdio .h>


int main(无效)

{

int a [3] [3] = {{1, 2,3},{4,5,6},{7 ,8,9}};

int(* p)[3];


p = a;

printf(" ; a [1] [1] =%d \ np [1] [1] =%d \ n,

a [1] [1],p [1] [1] );

返回0;

}


-

Al Bowers

Tampa,Fl USA

mailto: xa ****** @ myrapidsys.com (删除x以发送电子邮件)
http:// www。 geocities.com/abowers822/


" Anthony Moss" < A * @ baesystems.com>。写道:

如何使用双指针访问二维数组。

即int a [3] [3];
int ** p;




你不是。如果你想使用a的子数组(很少见),你需要一个指向数组的指针:int(* p)[3]。如果,OTOH,你想与各个int成员一起工作
,你需要一个简单的int *。

声明int ** p意味着p是指针_to指针

int。你没有指向int的指针,所以你不应该使用

一个int **。


Richard


How do you use a double pointer to access a two dimensional array.

ie int a[3][3];
int **p;

-
-
-
-
-

etc.
thanks
Anthony

解决方案

Anthony Moss wrote:


How do you use a double pointer to access a two dimensional array.

ie int a[3][3];
int **p;



int (*p)[sizeof *a / sizeof **a] = a;

--
pete




Anthony Moss wrote:

How do you use a double pointer to access a two dimensional array.

ie int a[3][3];
int **p;



int (*p)[3];

Example:
#include <stdio.h>

int main(void)
{
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int (*p)[3];

p = a;
printf("a[1][1] = %d\np[1][1] = %d\n",
a[1][1],p[1][1]);
return 0;
}

--
Al Bowers
Tampa, Fl USA
mailto: xa******@myrapidsys.com (remove the x to send email)
http://www.geocities.com/abowers822/


"Anthony Moss" <a.*@baesystems.com> wrote:

How do you use a double pointer to access a two dimensional array.

ie int a[3][3];
int **p;



You don''t. If you want to work with the sub-arrays of a (which is rare),
you need a pointer to an array: int (*p)[3]. If, OTOH, you want to work
with the individual int members, you need a simple int *.
The declaration int ** p means that p is a pointer _to a pointer_ to
int. You have no pointers to int to point at, so you should not be using
an int **.

Richard


这篇关于指针和数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆