《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];

原文地址:https://www.cnblogs.com/hello2mhb/p/3334688.html