c primer plus(第六版) - 10 数组和指针
自动存储类别:在函数内部声明,存储在stack中的变量。
数组长度:sizeof(days) / sizeof(day[0])
冷知识:
int n = 5;
float a8[n]; // 在C99之后没问题!
P305
rain[0]是一个内含12个float元素的数组。把rain[0]看成一个整体A,那么A[0]就是首元素。可以看成5个元素:
rain[0]
rain[1]
rain[2]
rain[3]
rain[4]
有10个元素,每个元素都是一个二维数组。
许多计算机都是按字节编址的,意思是内存中的每个字节都有个编号。
如果传进来的是数组,则int sum(int ar[]); 比 int sum(int *ar)更容易阅读。
有没有想过为什么指针效率更高?因为指针表示法更接近机器语言,一些编译器在编译时能生成效率更高的代码。
10.6 P318 保护数组中的数据
传递变量时可以传值或指针,传递数组时,只能传递指针,java没有指针是怎么传递的?(或者分配足够的空间来存储原数组的副本)
const要么在最前面,要么在指针的前面。
查询:指针和多维数组和函数,P322开始
C++允许在申明数组大小时使用const整数,C却不允许。
10.8边长数组
为什么数组有变长,目前学的数组不都是固定长度的吗?
322页开始,以后再补充