c语言-指针

孤街醉人 提交于 2020-04-05 15:34:03

指针

一、指针的地址

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;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!