《C专家编程》学习笔记——再论数组

一、什么时候数组与指针相同?

1、从C语言声明和使用考虑。(P200  图9-1)

2、从C语言标准考虑

 1)、表达式中的数组名被编译器当作一个指向该数组第一个元素的指针。

 2)、数组下标总是与指针的偏移量相同。

 3)、在函数参数的声明中,数组名被编译器当作指向该数组第一个元素的指针。

   注意:处理一个一维数组时,指针并不见得比数组快。



二、为什么C语言把数组形参当作指针?

1、把作为形参的数组和指针等同起来是出于效率原因的考虑。

2、数组形参是如何被应用的?(206  图9-3)

  注意:1)、在被调用的函数中,你只拥有一个指向变量的指针而不是变量指针。

              2)、C语言允许程序员把把形参声明为数组或指针。但不论用那一种形式,都要知道指针所指的数组共有多少个元素。如数组一NUL结尾或

                         另一个附加的参数来表述数组的 范  围。

               3)、没有办法把数组本身传递给一个函数,因为它总数被自动转换为指向数组的指针。

               4)、数组值得修改只能在指针中进行而无法在数组中进行。



三、数组和指针可交换性的总结

1、数组A[i]这样的形式对数组进行访问总是被编译器改写后解释为像*(a+i)这样的指针访问。

2、指针时钟就是指针。

3、在特定的上下文中,也就是它作为函数的参数(也只有这种情况),一个数组的声明可以看作是一个指针。

4、把一个数组定义为函数的参数时,可以把它定义为数组,也可以定义为指针。

5、在其他所有情况中,声明和定义必须匹配。



四、C语言的多维数组

1、在不用的语言中,多维数组的含义各不相同。

2、C语言中的数组就是一维数组。

3、分解多维数组的方法。(P212  例9-8)

4、内存中数组是如何布局的。(P213  图9-9)

  注意:C语言多维数组采用行主序进行内存布局,就是最右边的下标先变化。



5、数组的初始化

 1)、只用字符串常量才可以以初始化指针数组。

      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值