指针
一、指针的地址
1、变量的地址
计算机中,数据存储在内存中,内存可划分为若干存储单元,每个单元可以存放8位二进制数,即1个字节。内存单元采用线性地址编码,每个单元具有唯一一个地址编码。
【1】变量的地址:系统为变量分配的内存单元的地址(内存中每一个字节都有一个编号, 就是“地址”,是一个无符号整型数)
【2】变量的有关概念
存储内容:数据值
空间大小:数据类型
空间位置:地址
生存周期:存储类别
2、变量的访问方式
【1】直接访问
int a; float b; a = 3; //直接将3放入a的地址 b = 4;
【2】间接访问:定义一个变量p,存放a的地址,通过p来访问a
3、指针变量:存放地址的变量
例:p为指针变量,它存放整型变量a的首地址,就称指针变量p指向整型变量a
二、指针变量的定义与引用
指针变量在使用前必须定义,使其指向特定类型的变量,指针变量存放地址,必须定义为“指针类型”。
1、定义方法 类型符 *指针变量名
指针变量的类型 所指向的内存中存放的数据的类型
int *p1,*p2; char *ps; float *pf1,*pf2;
2、指针变量的赋值
【1】指针变量的值为地址,是一个无符号整数,但不能直接将整型常量赋给指针变量。
注:变量的类型必须与指针变量的类型相同,若不赋值,则指针变量的值是随机的(会很危险,可能随机的值指向系统的某个地址)。
>>>需要用变量的地址给指针变量赋值(求地址运算符 &) int a,b,*p; p = &a;
>>>用相同类型的指针变量赋值 int a; int *p1,*p2; p1 = &a; p2 = p1;
>>>赋空值 NULL p = NULL; p = 0;
【2】指针变量 的初始化方法:
>>>赋空值 NULL
>>>用已定义的变量的地址
int *p1 = NULL; float a; float *p2 = &a; char ch,*p3 = &ch;
3、指针变量的应用
【1】两个有关的运算符:
形式: & 任意变量 /*取地址运算符*/ >>>&a表示变量a所占据的内存空间的首地址
* 指针变量 /*指针运算符*/ >>>*p表示指针变量p所指向的内存中的数据
应用:通过指针变量访问所指变量
>>>将指针变量指向被访问的变量 int a = 5,*p,b; p = &a;
>>>访问所指变量 取内容:b = *p; printf("%d\n",*p); 存内容:*p = 100;
来源:https://www.cnblogs.com/dabj-yb/p/12623377.html