关于数组和指针的一些操作

关于数组和指针的一些操作首先需要知道的是:对指针进行加1的操作,得到的是下一个元素的地址,而不是原有地址值直接加一。 2、-则是将上述获得的地址强制转化为int*型,并

欢迎大家来到IT世界,在知识的湖畔探索吧!

首先需要知道的是:对指针进行加1的操作,得到的是下一个元素的地址,而不是原有地址值直接加一。如一个类型为T的指针的移动,是以sizeof(T)为移动单位。

下面以具体程序进行分析:

关于数组和指针的一些操作

1、&a+1 – &a为数组的首地址,所以此操作为数组首地址加上sizeof(a),即&a+sizeof(int),也就是下一个数组的首地址。

2、(int*)(&a+1) – 则是将上述获得的地址强制转化为int*型,并赋给ptr。

3、a+1 – a为数组首元素的地址,即a[0]的地址。则a+1为数组第二个元素的地址,即a[1]的地址。

4、*(a+1) – 由上可知*(a+1)即为a[1]。

5、*(ptr-1) – 由上述出程序,ptr指向下一数组的首元素,且ptr也为int*类型,所以*(ptr-1)为a[4]。

需要特别注意的是:&a代表数组地址,a代表数组首元素地址。虽然他们指向的地址是一样的,但代表的意义并不一样。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22504.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信