第五章 指针和引用;指针是一种特殊的数据类型。
指针概念是C++语言中较难理解和较难掌握的概念之一。
本章介绍指针的概念、定义、运算等内容。;指针指向的对象称为目标或目标变量(常量)。如图7.1所示:
;C++规定:
目标或目标变量可以用指针变量名前加上运算符“ * ”表示。
pv的目标变量value可表示为*pv,
pc的目标变量ch可表示为*pc,
即 *pv和value等效
*pc和ch等效
而pv和pc表示针变量本身的地址,当指针变量为2个字节时,
最大访问地址为:;例如:
int *ptr ; char *name ; float *pf ;
其中,定义ptr,name,pf分别为指向整型、字符型和浮点型
数据的指针。
const int *ptr; // pointer to int const
const char *cpc
const float *point
其中,ptr,cpc,point为指向常量的指针。
注意:
指针变量可以与其他变量一起定义,如:
int a, bb,*c;
char *p, *q, ch;
指针变量也可定义为全局,静态和局部的指针。;例如:
int num, *pn;
char color , *pc;
执行语句
pn=num; pc=color;
则在程序中
*pn=100; 等效于num=100;
*pc=‘r’; 等效于color=‘r’;
这里,“*”作为访问目标变量的运算符,在定义指针时,
“*”作为说明符。注意使用上的区别。;指针赋值的几种情况:
同种数据类型的指针变量之间可以相互赋值。
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; //正确;例:有关指针概念的程序
//ex5_3.cpp
#include iostream.h
void main( )
{
int w, *p = w;
*p = 800;
coutw=w\tw=wendl;
cout*p=*p\tp=pendl;
cout\tp=pendl;
};图示如下:;3、指针与整数的加减运算
在数组中,指针变量加上或减去一个整数n,表示:
指针由当前所指向的位置向前或向后移动n个数据元素的位置。
移动后的实际地址为:
p ± n*sizeof(数据类型)
4、指针的关系运算
指向同种数据类型的指针可作关系运算,表示它们所存放的
地址之间的关系。
, , = = , !=
指针运算示例:课本P57例4.2;//ex5_2a.cpp
#include iostream.h
void main( )
{
int a[10], *p, *q;
couta=aendl;
couta+1=a + 1endl;
couta+2=a + 2endl;
p = a[5];
q = p;
p ++;
q --;
;例
//ex5_3.cpp
#include iostream.h
void main( )
{
char *p1, *p2;
p1 = C Program;
p2 = p1 + 8;
while (p2 = p1)
{
cout*p2;
p2--;
}
coutendl;
};§5.4 指针与数组;数组元素的表示方法示例;例如:下面程序是用指针方式访问数组元素,计算数组元素之和。
#include iostream.h
void main()
{
int iarray[10]={0,2,4,6,8,10,12,14,16,18};
int sum=0;
int *iptr=ia
原创力文档

文档评论(0)