weixin_38023504
weixin_38023504
采纳率0%
2017-04-13 13:28 阅读 1.1k

!!!请教c语言中二维数组的数组名与指针的问题

图片说明

  &a[1][0]、a+1、*(a+1)和&(*(a+1))四个的结果相同,都是0028FF0C,那样说明*(a+1)自己本身的地址a+1跟*(a+1)存储的内容(&a[1][0])是相同的,指针*(a+1)自己指向自己,这样是可以的吗?
   还有这也说明0028FF0C这个地址上既存储着地址0028FF0C(从*(a+1)存储的内容来看)又存储着整型‘3’(从a[1][0]存储的内容来看),同一个地址存储着两个不同的元素不会冲突吗?
    ps:我理解为同一个地址但代表不同的内涵,指针*(a+1)自身的地址&(*(a+1))代表一维数组的首地址,是指向一维数组的,通过该地址来找到该一维数组的位置。a[1][0]自身的地址&a[1][0]代表整型变量a[1][0]的地址,存储在指针*(a+1)上,是指向整型‘3’的。两者虽然值都是0028FF0C,但内涵不一样。不知道这样理解对不对。
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • weixin_38023504 weixin_38023504 2017-04-13 14:12

    !!!!!自顶,跪求大神解疑

    点赞 评论 复制链接分享
  • u010451036 雪泥鸿爪哦 2017-04-14 03:54

    二维数组a[3][2]中,系统会开辟出一段连续地址的内存块,来存储123456这6个数字。a代表的首地址即a[0][0]的地址,a与a[0]的含义是一样的,只不过a+1代表的是a[1][0]的地址,而a[0]+1代表的是a[0][1]的地址。

    点赞 评论 复制链接分享
  • u010451036 雪泥鸿爪哦 2017-04-14 07:46

    你可以用数组指针p来输出,看看p指向的地址图片

    点赞 评论 复制链接分享
  • weixin_38023504 weixin_38023504 2017-04-15 03:36

    图片说明

    点赞 评论 复制链接分享

相关推荐