读书人

新手请问c++有关问题

发布时间: 2013-01-06 15:44:48 作者: rapoo

新手请教c++问题
char (*c)[5];
c = new char [n][5];


第一句话是什么意思啊,谢谢
[解决办法]
c为指向数组的指针,这里指向5个char构成的数组。 搜一下<数组指针>..
[解决办法]

char *p;
p = new char [5];
怎么解释?

[解决办法]

引用:
c为指向数组的指针,这里指向5个char构成的数组。 搜一下<数组指针>..


怎么会呢,
像下面的代码
char *c;
c = new[5]

char本来是单个的元素,现在指向了一个一维数组.
你可以把一维看成一个整体,那么自然就是二维了
char (*c)[5];
c = new char [n][5];



[解决办法]
引用:
引用:
c为指向数组的指针,这里指向5个char构成的数组。 搜一下<数组指针>..


如果这样理解,即c指向一个一维数组的指针,而第二句c指向的是一个二维数组的指针,这样是否矛盾???

指针只是一个地址
[解决办法]
个人愚见

[地址
[解决办法]
值]

char (*c)[5];

转换一下:
char arry[5];
char* c = arry;

打个比方:
char arry[5] = "1234"; arry的地址是0x11111111
c的地址是0x22222222
c 内存形式是[0x22222222
[解决办法]
0x11111111] arry[0]的内存形式是[0x11111111
[解决办法]
'1']

读书人网 >C++

热点推荐