现在的位置: 首页 > 综合 > 正文

指针(3)(4)

2013年03月17日 ⁄ 综合 ⁄ 共 516字 ⁄ 字号 评论关闭

  最近忙于复习考试,看的c的书有点少了,我们大三基本上开的是软件工程、web、数据库、和网络、多媒体和图形学,涉及到c编程的少点。所以还是自己看的书,自己的理解

(3)什么时候可以看做数组和指针等价?在c语言中,没有一个函数的参数可以传递一个数组的,也没必要,只要通过首地址的引用就可以操作数据了。所以,当数组作为函数实参的时候,也就是为什么可以传递给一个指针变量的原因了

(4)指针数组和数组指针  ,这两个概念还是比较容易区分的

                        int * p[10];

                       int (*p)[10];

其实可以理解成优先级的问题来解释。[ ]的优先级比*高,所以p[10]是个数组,类型是int *的,那么(*p)是个指针指向的是int [10],第一种情形简单的理解为普通数组即可,后一种情形则可以看做是二维的数组,只不过每一列就是固定的10个元素,所以数组指针亦可以说是行指针。同理,p+1对于这两者表达的就是不同的意思了,对于第一,其实就是p[1],对于第二种情形就是二维数组的第二行的首地址也就是p[1][0]的地址,也可以说是p+sizeof(int)*10,本质就是跨过了一行,指向下一行的地址

  

           

抱歉!评论已关闭.