C语言__指针
变量和指针
通过变量名引用变量,由系统自动完成变量名和其存储地址之间的转换,称为变量的"直接引用"方式
首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读写变量a的值。这就是"间接引用"。
指针的定义
一般形式:类名标识符 *指针变量名;
int *p;
float *q;
前面的类型标识符表示指针变量所指向的变量的类型,而且只能指向这种类型的变量
"*"是一个说明符,用来说明这个变量是个指针变量,是不能省略的,但它不属于变量名的一部分
指针的初始化
1.先定义后初始化
// 定义int类型的变量a
int a = 10;
// 定义一个指针变量p
int *p;
// 将变量a的地址赋值给指针变量p,所以指针变量p指向变量a
p = &a;
2.在定义的同时初始化
// 定义int类型的变量a
int a = 10;
// 定义一个指针变量p
// 并将变量a的地址赋值给指针变量p,所以指针变量p指向变量a
int *p = &a;
注意:指针变量没有明确的指明指向地址的时候,不能读写。(为了系统的安全,程序还没有分配指向内存的操作权限,一旦操作很可能引起系统的奔溃,因为强行使用会使别的正在使用该内存的程序崩坏)
指针运算符
// 指针变量p指向变量a 取地址运算符&
char *p = &a;
//将指针变量的指向内存值取出赋值给value 取地址指向内容*
char value = *p;
指针的用途
快速传值
修改实参
实现函数多返回值
指针的学习解答
在同一种编译器环境下,一个指针变量所占用的内存空间是固定的。
指针变量要分类型,只能指向一种类型的变量