指针:是一个变量,它存储的是一个内存地址。这个地址指向的是另一个变量或数据的位置,也就是说,指针可以直接访问内存中的数据。在C语言中,我们可以通过指针来实现参数传递、动态内存分配、数组的操作等。
定义指针之后必须初始化指针,否则指针会变成一个野指针,指向未知的区域。
sizeof(*p)对一个地址求大小得到的结果是8,说明地址再内存中占8个字节。
数据类型是指针所指向的变量的数据类型,指针变量名是指针变量的名称。例如:
int *p;
在C语言中,函数的参数传递默认是值传递,也就是说,函数中的形参是实参的拷贝,对形参的修改不会影响到实参。但是,如果我们将指针作为函数的参数传递,就可以实现对实参的修改。
这里,我们将指针a和b作为函数swap的参数传递,函数中的操作会直接修改a和b的值。
变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL
值是一个良好的编程习惯。
赋为 NULL
值的指针被称为空指针NULL
指针是一个定义在标准库中的值为零的常量
在大多数的操作系统上,程序不允许访问地址为0
的内存,因为该内存是操作系统保留的。然而,内存地址 0
有特别重要的意义,它表明该指针不指向一个可访问的内存位置。但按照惯例,如果指针包含空值(零值),则假定它不指向任何东西。