指针(3)(4)

  最近忙于复习考试,看的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,本质就是跨过了一行,指向下一行的地址

  

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值