内容正文:
第8章指针
8.1指针的基本概念
8.2指针变量的定义、初始化、引用
8.3指针运算
8.4指针与数组
8.6指针与函数
8.5指针与字符串
8.7指针数组
大学C/C++语言程序设计程序设计 第8章 指针
1-12章幻灯片45分钟 13-27章45分钟
计算机内存被划分为一个个存储单元,以字节为单位,用来存放程序和数据。系统给每个存储单元按一定规则编号,这个编号就是存储单元的地址。
8.1 指针的基本概念
计算机硬件的基本组成是什么?
计算机硬件由五大部分组成:运算器、控制器、存储器、输入设备、输出设备
大学C/C++语言程序设计程序设计 第8章 指针
int i;
char j;
内存中每个字节的编号-----地址
…...
…...
2000
2001
2005
内存
0
2003
系统编译或函数调用时为其分配 内存单元。
2002
2004
大学C/C++语言程序设计程序设计 第8章 指针
1.指针与指针变量
指针:一个变量的地址
例: int a ;double b; char c[10];
&a &b &c[0],&c[4],c,c+8
指针变量:
定义:
存放另一个变量在内存单元的编号(即地址)的变量,称为指针变量。
大学C/C++语言程序设计程序设计 第8章 指针
int a=10;
变量a分配内存为1000~1003,
则称a的地址为:1000 &a
指针变量p分配内存为 2008~2011
则称p的地址为:2008 &p
指针p中存放的数据为a的地址:&a
变量a存放的数据为:
10
则称p为存放a地址的指针变量
大学C/C++语言程序设计程序设计 第8章 指针
8.2 指针变量的定义、初始化、引用
8.2.1定义格式 :
类型标识符 * 变量标识符;
int *p1; /*声明p1为指向整型变量的指针变量*/
char *p2; /*p2是指向字符型变量的指针变量*/
float *p3,*p4; /*p3,p4是指向单精度类型变量的
指针变量*/
指针变量所指向的变量类型
定义指针变量的标志
指针变量名
大学C/C++语言程序设计程序设计 第8章 指针
8.2.2 指针变量的初始化
1.初始化一般形式:
数据类型 *指针名=初始地址
int i=10;
int *p=&i;
int *q=p;
&i
&i
10
p
q
i
指针也可以被初始化为0、NULL,该指针不指向任何对象,称为空指针。
float * q=0;
# define NULL 0
double * p1=NULL
大学C/C++语言程序设计程序设计 第8章 指针
注意:
1) 指针变量数据类型必须与所赋值的变量类型一致,例如以下语句是非法的。
float y; int* p; p=&y;
因为p为整型指针变量,y为实型变量,类型不一致,故为 p=&y;是非法语句。
2) 不允许把一个数(常量)赋予指针变量