首页 / 软件开发 / 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为函数名