关于指针
1. 程序对变量的读写操作,实际上是对变量所在的存储空间进行写入或取出数据。
2. 通过变量名引用变量,由系统自动完成变量名与其存储地址的转换,称为变量的直接引用方式。
3 int a=10 自动将变量名a转换成变量存储地址,根据地址找到变量a 的存储空间,然后将十进制数10转换成二进制形式放入a的存储空间。
4 间接引用方式:将变量a的地址放在一个变量中,比如放在变量b中,然后通过变量b间接读写变量a的值,称为间接引用方式。
5 程序通过间接引用改变b值的步骤:通过变量名b获取变量b的存储地址ffc1,取出变量b中的存储内容ffc2,也就是a的地址,再根据变量a的地址找到a的存储空间,然后修改里面的数据。
6 用来存储变量地址的变量,称为指针变量。
7 指针的定义,指针的初始化,指针运算符,指针的 用途 指针的疑问
8 指针的定义 : 类型标识符 *指针变量名
”*“ 说明符(说明这个变量是指针变量,不能忽略,但不属于变量名的一部分
前面的类型标识符表示指针变量指向变量的类型,并且只能指向这个类型的变量
9 指针的初始化: 先定义后初始化 int a = 10; int *p ; p = &a;
将变量a的地址赋值给指针变量P,所以指针变量p指向变量a
10 定义的同时初始化 int a = 10; int *P =&a; 先定义一个指针变量p,将变量a 的地址赋值给指针变量p,所以指针变量P 指向变量a
11 指针运算符: 给指针指向的变量赋值 例如: char a; char *p = &a; *p = 9 通过指针变量p 间接修改变量a 的值 。char *p 中的星只是用来说明p是指针变量
*p = 9 ; 中的星是一个指针运算符,这里的星p 代表: 根据p值(也就是a 的地址) 访问对应的存储空间,也就是变量a 的空间,然后将9 写入这个存储空间
12 取出指针所指向变量的值
char a = 10; char *p = &a; char value = *p ; 星p 的意思是 根据p值(a的地址)访问对应的存储空间,并取出存储内容(a的值)赋值给变量value
13 使用注意: 在指针变量没有指向确定的地址之前,不要对它指向的内容赋值 例如: int *p; *p = 9;
14 应该在指针变量指向确定的变量后再赋值
int a =10 , b; int *p = &b; *p = a; 将变量a 的值赋值给给变量b
15 指针的用途: 写一个函数swap, 接收两个整形参数,功能是互换两个实参的值
基本数据类型作为函数的实参时 ,只是纯粹的将值传递给形参,形参的改变并不影响实参。