c语言 一维数组 例a[3]={1,2,3};里面a是首地址,a与a[0]什么关系?
2个回答
展开全部
a是首地址,a[0]是首地址的内容,相当于*a
a+1相当于指向下一个地址的指针,a[0]+1相当于第一个位置的值加1
不明白再问
当然不是,p只是一个指针,应该是p=a,p指向数组首地址,p++相当于a+1,p++两次就相当于a+2啊,如果加三次,p就指向下一个int型的地址,此时虽然数组a越界了,但是指针还是有效的,只是指向的不是数组的内容
a+1相当于指向下一个地址的指针,a[0]+1相当于第一个位置的值加1
不明白再问
当然不是,p只是一个指针,应该是p=a,p指向数组首地址,p++相当于a+1,p++两次就相当于a+2啊,如果加三次,p就指向下一个int型的地址,此时虽然数组a越界了,但是指针还是有效的,只是指向的不是数组的内容
追问
把*p=&a;p++2次后再怎么把p回到p=a的位置?不用其他变量
追答
再让p=a,或者p--两次
指针可以随时给它赋值,让它指向其它地址的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询