1.指针的基本概念
指针的作用:通过指针间接访问一块内存。每个变量都有一块地址,指针指向这个地址,对变量进行操作。
如何定义一个指针: 数据类型 * 指针变量名
//定义指针
int a = 10;
int *p;
//指针记录变量a的地址
p = &a;
指针本身储存的是一个地址,通过指针前加* 解引用,找到指针指向的内存中的数据。
a = 10; p = &a = 0x0000; *p = 10。
指针所占内存大小:32位操作系统指针4字节,64位8字节。无论指针指向何种数据类型
空指针:指针指向内存编号为0的空间 用途:初始化指针变量(空指针指向内存不可访问,0-255这块内存为系统占用) int*p = NULL;
野指针:指针变量指向非法内存空间 程序中尽量避免野指针。
2.const修饰指针
const修饰指针——常量指针 const int *p
指针指向可以修改,指针指向的值不可以修改;
左边不可以 右边可以。
const修饰常量——指针常量 int* const p
指针指向不可以改,指针指向的值可以改
左边不可以,右边可以。
const既修饰指针,又修饰常量 const int * const p
指针指向和指针指向的值都不可以改。
利用指针访问数组元素
指针和函数
利用指针作函数参数,可以修改实参的值。
值传递:形参无法改变实参
地址传递:可以改变实参