您的位置 电脑知识爱好者 >> 编程知识 >> 简单的指针与二维数组的问题

简单的指针与二维数组的问题

电脑知识爱好者互联网本站整理2008-2-21 0:00:52
知识重点:选A 因为运算符优先级的原因所以B是错的(再运算*,并不会先运行*再运行=t---pt指向t的首地址是正确的,不能说pt指向t,当然t是t的首地址这没错,但逻辑上pt不表示t的元素。如果说B正确,那么我们..

选A 因为运算符优先级的原因所以B是错的([]的优先级大于*) B项中,是先运算pt[0]再运算*,并不会先运行*再运行[]。 按照C的编译原理,pt[0]=t[0]---pt[0]指向t[0]的首地址是正确的,不能说pt[0]指向t[0][0],当然t[0][0]是t[0]的首地址这没错,但逻辑上pt[0]不表示t[0]的元素。如果说B正确,那么我们访问t[0][1]怎么表示?难道用*pt[1]吗?很显然是错的,因为pt[1]是t[1]的首地址。访问t[1][1]又怎么办? 如果要使b正确,只能这么表示(pt[0])[0]。 其运算过程如下:先运算(pt[0])取出t[0]再运算[0].因为pt[0]=t[0],所以(pt[0])[0]=(t[0])[0],又因为[]运算符运算顺序是从左到右,所以()可以省略,因此这样表示也是正确的pt[0][0]=t[0][0].关键抓住一点,pt[0]=t[0],再考察运算顺序。
循环语句将pt指针数组指向t

pt[0]=t[0]---pt[0]指向t[0][0]

pt[1]=t[1]---pt[1]指向t[1][0]

pt[2]=t[2]---pt[2]指向t[2][0]

A.&t[3][2]数组是元素地址

C.*(pt+1)相当于 pt[1]指向t[1][0]的地址

D.&pt[2]相当于 pt[2]指向t[2][0]的地址

只能选B,指向数组的首元素地址

参与评论
相关内容
关于我们 | 隐私政策 | 站点地图 | 站长博客|京ICP备07025396号
添加到百度搜藏 添加到百度搜藏 电脑知识爱好者Copyright ?2006-2008版权所有 我要啦免费统计