鸡啄米
最新评论及回复
-
938. test:
声明指向数组的指针,例子中的代码有点不解:
*(*(p+i)+j)=0 ,是对二维数组中的每个元素进行初始化,
p是指向有3个元素的以为素组 ,那么*(p+i)就是第i个一维数组的具体值了,怎么又在外层加一个*呢?
其次,数组声明为int类型,默认占用4个字节,那么在顺序访问数组元素的时候是否应该是*(p+i*4)呢?
请指教。鸡啄米 于 2012-02-19 22:33:57 回复第一个问题,前面说了“这个语句如果执行成功则返回指向分配内存首地址的指针,但是这个指针不是T类型的指针,而是指向T类型数组的指针。”p是指向有3个元素的一维数组,那么p+i就是指向第i(从0开始)个有3个元素的一维数组的指针,要想获得此一维数组首地址就要通过*(p+i),再通过*(p+i)+j获得此一维数组的第j个元素的地址,取得具体值就要再在前面加*。
第二个问题,数组为int类型的话,p为首地址,p+i就代表了第i个元素,指针会偏移一个int的字节数,p不是字节型指针而是整型指针,不需要用字节运算。2012/2/19 01:57
-
937. lohasboy:
真是越改越丑啊鸡啄米 于 2012-02-19 21:50:23 回复看来很多人都不喜欢2012/2/19 00:52
-
936. 袁晓龙:
博主初次来访您的博客,文章写的还不错,加油,我订阅您的文章了。
由 鸡啄米 于 2012-02-18 23:52:39 最后编辑2012/2/18 23:43
-
935. 依然想你:
1713740598@qq.com2012/2/18 21:29
-
934. 依然想你:
谢谢,辛苦了老师,你写 的很生动,虽然我不是很懂,但我会努力的,慢慢看反复的看。鸡啄米 于 2012-02-18 23:55:20 回复嗯,加油。希望你能有很大收获。2012/2/18 21:28