在c语言中,当我定义好一个指针后,可不可以将这个指针直接指向数组的末尾?

eg:
int *p;
int a[10];
p=&a[9];
这样可以吗?

可以。指针可以指向任何地方,但指向后能不能写就是另外一回事了。比如: p=&a[9] 可以用*p=10写内存,但是 p=&a[9]+1 就不一定能用 *p=10来写该地址的内存了。追问

那 p=&a[9]-1 能不能用 *p=10来写该地址的内存呢?举个最简单的例子吧,比如定义好一个数组,为了使其倒序输出数组元素,使该指针指向数组末尾,然后让指针依次减一来输出数组元素。这样可以吗?谢谢!!

追答

可以!只要指针指向的是可写内存。你定义了数组a[10],那么 &a[0] 到 &a[9] 都是可写的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-27
可以
第2个回答  2012-10-27
当然可以

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网