第五章-指针
第五章-指针
为巽一、指针的概念
操作系统给每个存储单元分配了一个编号,从 0x00 00 00 00 00 ~0xff ff ff ff 称之为内存
指针变量:是变量也是指针变量,这个变量用来存放一个地址编号。在 32 位系统下,有 4 个字节
注:
1、无论声明类型的地址,都有存储单元的编号,在 32 位下都是 4 个总控二。所以 任何类型的指针变量都是 4 个字节
2、对应类型的指针变量,只能存放对应类型的变量地址
比如:整形的指针变量,就是存放整型变量的地址
扩展:
字符变量 char ch; ch 占一个字节,它有一个地址编号,这个地址编号就是 ch 的地址整型变量 int a; a 占四个字节,占有四个字节的存储单位,有四个地址编号
二、指针的定义方法
1、简单指针
数据类型 * 指针变量名
1 | int * P; |
2、指针的运算符
& 取地址 :获取一个变量的地址
*取值:标识作用
1 |
|
3、指针大小
在 32 位系统下,所以类型的指针都是 4 个字节
三、指针的分类
1、字符指针
char *p;//只能存放字符串类型的地址编号
char ch;
p = &ch;
2、短整型指针
short int *p;
short int a;
p =&a;
3、整形指针
int *p;
int a;
p =&a;
4:长整型指针
long int *p;
long int a;
p =&a;
5:float 型的指针
float *p;
float a;
p =&a;
6:double 型的指针
double *p;
double a;
p =&a;
7:函数指针
8、结构体指针
9、指针的指针
10、数组指针
四、指针和变量的关系
指针可以存放变量地址编号
1、变量的名称引用变量
int a;
a=100;
2、通过指针变量引来变量
int *p;
p =&a;//p 保存了 a 的地址,也可以说 p 指向了 a
*p=100;
注意:指针变量的定义可以初始化
int a;
int *p=&a;//指针就是存放变量地址的
1 |
|
扩展:
对应类型的指针,只能保存对应类型数据的地址
如果想让不同类型的指针互相赋值,需要强制类型转换
1 |
|
五、指针和数组元素之间的关系
1、数组元素和指针的基本关系
变量存放在内存中,有地址编号,定义的数组,是的哟个相同类型的变量的集合。每个变量都占内存空间,都有地址编号。指针变量可以存放数组元素的地址(数组首元素)
1 | int a[10]; |
2、数组元素的引用方式
(1)数组名[下标]
1 | int a[10]; |
(2)指针名加下标
1 | int a[10]; |
(3)指针运算加取值
1 | int a[10]; |
1 |
|