得程序设设 20023
C语言程序设计 2002 年 第 七 章 指 针
71指针的概念与指针的使用 指针的概念 数据(变量、常量)(根据类型)占有一定数目的连续存 储单元; >数据的连续存储单元首地址称为数据的地址 程序中能操作变量、常量的地址; char c &c为变量c的地址。 const int NUM=10;&NUM为常量NUM的地址。 >变量的地址称为指针,存放地址数据的变量称为指针变量 pc &c 执行赋值操作pc=&c后,称pc指向c,或pc是c的指针; 变量c称为pc的指向
7.1 指针的概念与指针的使用 一、 指针的概念 ➢数据(变量、常量)(根据类型)占有一定数目的连续存 储单元; ➢数据的连续存储单元首地址称为数据的地址。 ➢程序中能操作变量、常量的地址; char c; &c为变量c的地址。 const int NUM=10; &NUM为常量NUM的地址。 ➢变量的地址称为指针,存放地址数据的变量称为指针变量。 &c ‘a’ pc c 执行赋值操作pc=&c后,称pc指向c, 或pc是c的指针; 变量c称为pc的指向
指针说明 存储类型区分符类型区分符标识符, 其中:*标识符称为指针说明符。 例: char c,*pc: float f, pf; int i, "pi; pc=&c; pf=&f; pi&i; pc pf pl &c &f &i
二、 指针说明 存储类型区分符 类型区分符 *标识符,……; 其中: *标识符 称为指针说明符。 例:char c,*pc; float f,*pf; int i,*pi; pc=&c; pf=&f; pi=&i; &c pc c &f pf f &i pi i
常见的复杂说明: int *pi: /整型数的指针变量,被指向的是一个整型数* int(pa)5; /指针变量,被指向的是一个长度为5的整型数组 int *a101 /*长度为10的指针数组,每一个元素都是整型指针* int *fpi(void);/函数印i的说明,fpi的返回值为整型指针* int(apfn(char*);/函数指针说明,p在不同时刻可指向不同的 函数入口,被指向的函数形参为字符指针,返回值为整型* int“(*pfpi(int);/函数指针说明,p在不同时刻可指向不同的 函数入口,被指向的函数形参为整型,返回值为整型指针
常见的复杂说明: int *pi; /*整型数的指针变量,被指向的是一个整型数*/ int (*pa)[5]; /*指针变量,被指向的是一个长度为5的整型数组*/ int *a[10]; /*长度为10的指针数组,每一个元素都是整型指针*/ int *fpi(void); /*函数fpi的说明,fpi的返回值为整型指针*/ int (*pfi)(char *); /*函数指针说明,pfi在不同时刻可指向不同的 函数入口,被指向的函数形参为字符指针,返回值为整型*/ int *(*pfpi)(int); /*函数指针说明,pfi在不同时刻可指向不同的 函数入口,被指向的函数形参为整型,返回值为整型指针*/
指针的使用 指针运算符 单目&取地址运算符 &与操作数组成的表达式称为地址表达式。该类表达式的运 算结果为操作数变量的地址。形式为: &操作数(注:数组名也是地址表达式) 操作数必须为左值表达式(变量和有名称的存储区) 例:inti,a[10 const int NUM=10: 地址表达式:&i &alo &NUM
三、指针的使用 1。指针运算符 单目& 取地址运算符 &与操作数组成的表达式称为地址表达式。该类表达式的运 算结果为操作数变量的地址。形式为: &操作数 (注:数组名也是地址表达式) 操作数必须为左值表达式(变量和有名称的存储区) 例: int i, a[10]; const int NUM=10; 地址表达式: &i &a[0] &NUM a