C语言第八章地址与指针
1文档来源为:从网络收集整理.word 版本可编辑. 第八章 地址和指针
第一节 变量的地址和指针
1、计算机的内存是以字节为单位的一片连续的存储空间,每一个字节都有一个编号,这个编号就成为内存地址。
2、程序中定义了一个变量,c 编译系统就会根据定义中变量的类型,为其分配一定字节数的内存空间:
Short int 2
Int float 4
Double 8
char 1
指针 4
图8.1 变量在内存中所占字节的地址示意图 每个变量的地址就是指该变量所占存储单元的第一个字节的地址。
3、直接存取:程序中我们对变量进行存取操作,实际上也就是对某个地址的存储单元进行操作。这种直接按变量的地址存取变量值的方式。
4、在c 语言中,还可以定义一种特殊的变量,这种变量只
a 2001 p
3001
a b x
1012 1013 1015 1016 1201 1202 1203 1204
a
1文档来源为:从网络收集整理.word 版本可编辑. 是用来存放内存地址的。
图8.2 存放地址的指针变量示意图
通过变量p 间接得到变量a 的地址,然后再存取变量a 的值的方式称为“间接存取”方式,通常变量p 指向了变量a ,变量a 是变量p 所指向的对象。
5、用来存放指针地址的变量就称作“指针变量”。
6、“变量p 指向变量a ”的含义就是指针变量p 中存放了变量a 的地址。
7、在某些场合,指针是使运算得以进行的唯一途径。
第二节 指针的定义赋值
一、 指针变量的定义和指针变量的基本类型
1、 定义指针变量的一般形式如下:
类型名 *指针变量名1,*指针变量名2……
说明:1)类型名是基本类型。
2)*是说明符。(而在调用的时候,代表的是存储单元中的值)
3)指针变量名是用户标识符。
例:1)int *pi,*pj; pi pj 只能存放整型变量的地址 int I,*pi;double *pj;
2)p 为一个指向指针的指针变量
2002 2002 1012 1013
p p