Welcome

首页 / 软件开发 / C++ / 谈C/C++指针精髓(三)

谈C/C++指针精髓(三)2010-04-10 cnblogs 马伟1.4指针的运算

1.4.1赋值运算

指针变量的赋值运算有以下几种形式:

1.4.1.1指针变量初始化赋值如下:

int a;

int *ip=&a;

1.4.1.2把一个变量的地址赋予指向相同数据类型的指针变量。例如:

int a;
int *ip;
ip=&a; //把整型变量a的地址赋予整型指针变量ip

1.4.1.3把一个指针变量的值赋予指向相同类型变量的另一个指针变量。例如:

int a;
int *pa=&a;
int *pb;
pb=pa; //把a的地址赋予指针变量pb

由于pa,pb均为指向整型变量的指针变量,因此可以相互赋值。

1.4.1.4把数组的首地址赋予指向数组的指针变量。例如:

int a[5],*pa;
pa=a; //数组名表示数组的首地址,故可赋予指向数组的指针变量pa
也可写为:
pa=&a[0]; //数组第一个元素的地址也是整个数组的首地址也可赋予pa
当然也可采取初始化赋值的方法:
int a[5],*pa=a;

以上是一些基本的数组赋值方法,后面我们会详细讨论指针在数组中的使用。

1.4.1.5把字符串的首地址赋予指向字符类型的指针变量。例如:

char *pc;
pc="c language";
或用初始化赋值的方法写为:
char *pc=" c language ";

这里应说明的是并不是把整个字符串装入指针变量, 而是把存放该字符串的字符数组的首地址装入指针变量。

1.4.1.6把函数的入口地址赋予指向函数的指针变量。例如:

int (*pf)();

pf=f; //f为函数名