指针
一,内存指针
概述:
硬件上来描述,内存是物理设备,功能上描述,内存是是一个存储仓库,程序在执行前都要被装载到内存中,才能被中央处理器执行
要点:
1,内存是由按顺序编号的一系列存储单元组成的,在内存中每个存储单元都有唯一的地址编号,通过地址可以方便的在内存单元中存取信息。
2,内存地址是连续的,相邻内存单元间的地址相差一,当定义变量时,系统根据变量的类型分配相应的一个或多个内存单元,而这个变量占有的第一个内存单元的地址作为该变量的地址。
二,取地址符
&,用于表示某个变量的地址
格式:
&变量名
三,指针与指针变量
C语言用指针类型表示表示指针,用指针变量保存指针。指针变量也叫指针类型变量。
四,指针变量定义
格式:
类型符 *指针变量名
示例:
int *p;
1,指针变量只能指向同类型的变量
2," * "是一个说明符,说明该变量是指针变量
五,指针变量初始化
1,特殊方式
指针悬空: int *p = NULL;
2,常用方式
方式一:
int a;
int *p = &a;
方式二:
扫描二维码关注公众号,回复:
4172246 查看本文章
int a;
int *p;
p =&a;
六,指针与数组
1,指向一维数组的指针变量
数组是存储在一片连续的内存区域中,当指针指向数组时,对指针进行向前或者向后移动便可以访问数组中的元素。
2,数组指针定义
格式:
int a[10];
int *p = &a[0];指向a数组第0号元素
3,指针变量在数组中的运算
约定:(适用于3-1与3-2)
数组变量首地址2000
int a[10];
int *pa = &a[0];
3-1,自增、自减运算
pa++; //2004
运算过程:2000 + 4 = 2004
3-2,加减一个整数
pa = pa + 2; //2008
运算过程:2000 +2*4 = 2008
3-3,指针变量相减
约定:
q指向a[3]地址为20012
p指向a[1]地址为20000
q-p; //结果:3
运算过程:(20012-20000)/4 = 3
a[1]与a[3]相差3个数组元素