《C和指针》 读书笔记 -- 第8章 数组
1.在C中,数组名的值是一个指针常量而不是指针变量,也就是数组第一个元素的地址。
2.数组和指针的区别:
声明一个数组时,编译器将根据声明所指定的元素数量为数组保留内存空间,然后再创建数组名,它的值是一个指针常量,指向这段空间的起始地址;
声明一个指针时,编译器只为指针本身保留内存空间,并不为任何值分配内存空间。
3.存储于静态内存的数组只初始化一次,也就是在程序开始执行之前,通过把数组声明为static来实现。
4.int matrix[3][10];
说明如下:
【1】 matrix 指向包含10个整型元素的数组的指针 ------>指向数组的指针: int (*p)[10]=matrix
matrix+1 指向下一行
【2】 *(matrix+1)=matrix[1] 指向整型的指针
*(matrix+1)+5 指向第二行第六个元素
*(*(matrix+1)+5)=matrix[1][5]
5.作为函数参数的多维数组,函数原型声明时必须写出第2个及以后各维的长度,
void func2(int (*mat)[10]);
void func2(int mat[][10]);
6.指针数组
int *api[10];