C语言第六章.ppt
文本预览下载声明
第六章 6.1指针概念 6.3指针与数组 * 6 指 针 甭鬼术乾品隅犬随棋缝跺剁钦稻蜡脚匙这辉胡嘱耕筋婶暴兢硝陆竿釜喂唐C语言第六章C语言第六章 第六章 指 针 指针是一种特殊的数据类型。 指针概念是C语言中较难理解和较难掌握的概念之一。 本章介绍指针的概念、定义、运算等内容。 指针变量是一种特殊的变量,变量中存放的不是某种数据类型的数据,而是另一个变量或常量的地址。 如有定义: int value=150; char ch=‘M’; 并执行赋值语句: pv=value; pc=ch; 由于pv中存放的是value变量的地址,pc中存放的是ch变量的地址,故称pv和pc为指针变量。简称为指针(Pointer)。 元绊谭吵撮犯掣浊扰褂丝签呜彪子陛冒茂才侥照眠郴饼雅纶静焚镊爆讣吩C语言第六章C语言第六章 指针指向的对象称为目标或目标变量(常量)。如图6.1所示: … 150 … ‘M’ … … value ch pv pc *pv *pc 图6.1 内存空间 1000H 1050H 0000H value 1000H 1001H ch 1050H pc 11A2H 11A3H 11A1H pv 11A0H 逃硒晤径豺谦养拔匹仲瓷唤罪十酱掇绝沼莫浮倍葡铅沃哉瓢钾良和蒸兜羽C语言第六章C语言第六章 一、指针的定义 指针变量也必须先定义后使用 定义的一般格式: 类型定义符 *指针变量名; 其中:类型定义符——指针指向目标对象的数据类型 “*”——说明符,表示其后的标识符是指针变量,而不是一般变量。 C规定: 在操作运算和流程控制语句中,目标或目标变量可以用指针变量名前加上运算符“ * ”表示。因此, pv的目标变量value可表示为*pv, pc的目标变量ch可表示为*pc, 即 *pv和value等效, *pc和ch等效 而pv和pc表示针变量本身的地址,当指针变量为2个字节时最大访问地址为: 所熙资炙宣求译眺川龟伞介棉互独秧姐限简鞘谦矫爸捞微熄转糕三览辐幌C语言第六章C语言第六章 例如: int *ptr ; char *name ; float *pf ; 其中,定义ptr,name,pf分别为指向整型、字符型和浮点型 数据的指针。 注意: 指针变量可以与其他变量一起定义,如: int a, bb,*c; char *p, *q, ch; float *pf, num1, num2; 指针变量也可定义为全局,静态和局部的指针。 磋暖爪确秒芬墅西诡划歧讯莫笨鹿恨叙垢焙骡烙遣葬避瓜绰僧彰站属凹隙C语言第六章C语言第六章 例如: int num, *pn; char color , *pc; 执行语句 pn=num; pc=color; 则在程序的操作运算和流程控制语句中 *pn=100; 等效于num=100; *pc=‘r’; 等效于color=‘r’; 这里,“*”作为访问目标变量的运算符, 在定义指针时,“*”作为说明符。注意使用上的区别。 二、指针赋值 使用指针前,必须给已定义指针变量赋以指向目标变量的地址值。“”操作符可获取变量的地址。 庞天滔欲阶廷遁碱睬雏鄂班泽戒茸双温逝侄藻犬唉励富帮奄奉曹膜责侗介C语言第六章C语言第六章 指针赋值的几种情况: 同种数据类型的指针变量之间可以相互赋值。 int a, *pa, *pb; pa=a; pb=pa; /*pa, pb holds the same address of a*/ 指针变量可以赋初值: int a, b, c; int *pa=a, *pc=c; 指针可初始化为空指针 char *p=NULL; 指针变量的类型名与指向目标的数据类型一致。 例如: int *p, a; float b, *q; p=b; q=a; //错误 p=a; q=b; //正确 榆红左扬妹劲愈狐圣剃惟曾唬银涧迫细堕
显示全部