C语言是一门面向过程的语言,以函数为基本单位

指针

指针是C语言的灵魂

基本类型指针

  • int p; //p是以整型变量的地址为内容的变量,p是以p的内容为地址的变量
  • 指针就是地址,地址就是指针,地址就是内存单元的编号
  • 指针不等于指针变量,指针变量是存放内存地址的一个变量,而指针是一个地址
  • 指针的本质就是一个操作受限的非负整数,指针之间只能相减

    指针与数组

    ```c

    include

int main(void) { int a[5] = {1, 2, 3, 4, 5}; int p = a; //定义一个int型指针p指向数组a (p + i) == p[i]; //重要!!!此等式成立 *(a + i) == a[i]; //同理

  1. return 0;

}

  1. <a name="DNGMD"></a>
  2. ## 动态内存分配
  3. ```c
  4. #include <stdio.h>
  5. #include <malloc.h>
  6. int main(void)
  7. {
  8. int a[5] = {1, 2, 3, 4, 5}; //静态数组,以静态方式分配内存
  9. int* p = (int*)malloc(4); //使用malloc函数动态分配内存
  10. free(p); /*使用free函数释放分配的动态内存,需要注意的是无法释放给指针p分配的静态内存,
  11. 只能释放p所指向的那一块动态内存*/
  12. return 0;
  13. }