若定义 int x=5, (p)[4]=a;
则(*p+1)代表的数组元素是( )
( * p)[4]表示由四个指针组成的数组,a是二维数组,那么也就是由四行组成的一维数组,每一维是一个指针,这个指针指向一个数组空间。
那么 * ( * p+1)中, * p表示获得第0行,+1表示第0行第一列。因此* ( * p+1)相当于a[0][1]
如果a是二维数组的话,int ( * p)[4]; //p是一个指针,它指向一个长度为4的一维数组
p的类型为int ( * )[4]),由此可知,*( * p+1)也就a[1][0]
可以看看我的这篇文章:我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《【校招面经】学完C语言,这些面试真题你都会了吗?》, 一起来围观吧 https://blog.csdn.net/weixin_57544072/article/details/123304886?utm_source=app&app_version=5.1.1
int ( * p)[4];//该语句是定义一个数组指针,指向含4个元素的一维数组。
( * p+1 )代表a[0]
关于指针,其实很多人一开始学都很懵,拿我个人来说,我之前学就很懵,随着不断地学习,慢慢大致上理解了。
简单来说,指针就是内存地址,指针变量是用来存放内存地址的变量。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!希望对题主有所帮助,可以的话,帮忙点个采纳!