03 C 程序设计魅影-指针

指针

一,内存指针

概述:
硬件上来描述,内存是物理设备,功能上描述,内存是是一个存储仓库,程序在执行前都要被装载到内存中,才能被中央处理器执行

要点:

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个数组元素

猜你喜欢

转载自blog.csdn.net/qq_42873753/article/details/84290609