请各位大侠帮忙解释一下

248406869 2005-09-16 11:54:35
char (*p)[100];
是指向一维数组的指针还是二维的呀?小弟先谢过了。
...全文
547 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruodeer 2005-09-17
  • 打赏
  • 举报
回复
int (*p)[N] ; //p是指针,指向一维数组
int *p[N] ;// p是数组 ,元素是指针
bpzl 2005-09-17
  • 打赏
  • 举报
回复
这没什么可争论的4,要是认为100个char为一个元素那就是一维,
要是认为一个char 为一个元素那就是二维,
要是一个 bit为一个元素,那就是三维
。。。。。。。。。。。。。。。。。。。。
huabihan 2005-09-17
  • 打赏
  • 举报
回复
p是指向一维数组的指针,他一般是个二维数组.
leaf221 2005-09-17
  • 打赏
  • 举报
回复
这里分歧点 又出来了一个:char (*p)[100];//p作为指针是几维的?
说是二维的难道是指针的指针?
由(蛮)的程序中
//运行结果:
//p=58b *p=58b p[0]=58b
看来是一维指针呀?怎么说是二维指针

我同意P是指向一维数组的指针
xp_zhang 2005-09-17
  • 打赏
  • 举报
回复
char (*p)[100];//p是一个指向一维数组的指针, 该数组有100个char型的元素。

char* p[100];//p是一维数组名, 该数组有100个元素,每个元素都是CHAR型指针


guofu_x 2005-09-17
  • 打赏
  • 举报
回复
int (*p)[100];中的p是二维指针,指向一维的数组!
xiaocai0001 2005-09-16
  • 打赏
  • 举报
回复
楼上写的是???
char (*p)[10] = new bb;//bb???
russilong 2005-09-16
  • 打赏
  • 举报
回复
char bb[3][10]={...};
char (*p)[10]=new bb;
这个算指向几维?
playmud 2005-09-16
  • 打赏
  • 举报
回复
你说的没错.
drizzlecrj 2005-09-16
  • 打赏
  • 举报
回复
一维,同意虚无
兔子-顾问 2005-09-16
  • 打赏
  • 举报
回复
道长说的有理。
fiftymetre 2005-09-16
  • 打赏
  • 举报
回复
不是九里是群里呵呵,还有笨笨怎么当偶徒儿的嘻嘻
fiftymetre 2005-09-16
  • 打赏
  • 举报
回复
JJWW的半天,还发到九里打赌什么的切切切
zhouhuahai 2005-09-16
  • 打赏
  • 举报
回复
定义一个指向二维数组的指针
char (*p)[2][100];

定义一个指向一维数组的指针
char (*p)[100];

定义一个指向char 的指针:
char *p;

谁能说我错了?
xiaocai0001 2005-09-16
  • 打赏
  • 举报
回复
我明确表态~~~

支持道长一派~~~

指向一维数组的指针
用法上若用[]访问则类似于二维数组的形式
afraqiu 2005-09-16
  • 打赏
  • 举报
回复
char (*p)[100];
是指向由100个元素组成的一维数组的指针变量,
怎么能说是二维的呢??

char a[4][100];
p=a;//p这时是a[0]的入口地址,也是a[0][0]的入口地址

cout<<*p<<endl;
cout<<*(*p)<<endl;
上面这两句结果可是不同的呀

zhouhuahai 2005-09-16
  • 打赏
  • 举报
回复
就char *p而言,它是指向什么的指针? 是指向char的指针.
谁能否认?
zhouhuahai 2005-09-16
  • 打赏
  • 举报
回复
这样说吧:

以最简单的:
char *p = NULL; 来说,按楼上诸公的说法来看,
p是指向一维数组的指针了? 我根本就没有让它指向数组,难道也算?
xiaocai0001 2005-09-16
  • 打赏
  • 举报
回复
我看还是先讨论

char buff[10];
char *p = buff;

在以上这段程序中
p是一个指向一个一维数组还是单个元素???

关键是这儿的p可以有如下的使用方式
*p
p[i];
这样比较简单一些
xiaocai0001 2005-09-16
  • 打赏
  • 举报
回复
char (*p)[100];

准确地说
这个p是指向一个一维数组
但由于定义成 char (*p)[100]
所以它在进行+,-运算时与普通的char *q是不同的
普通的 ++q 等价与 q的地址移一个内存单元
但++p 地址移动的确是100个内存单元
这种特性使它可以做为类似一个二维数组来使用
因为 p[i][j]编译器解释为 p先移100*i个单元,再移j个单元
加载更多回复(22)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧