C++039(指针的自增 自减运算)

1.指针的自增 自减运算

指针变量存储的是地址,因此对指针做运算就等于对地址做运算。

下面通过实例介绍指针的自增、自减运算。

1.2输出整型变量变化地址

定义指针变量和整型变量,并将整型变量的地址赋给指针变量,再进行指针自增、自减运算,输出结果,比较增减前后的数值。代码如下:

#include
using namespace std;
int main()
{
	int a=100;
	int *p=&a;	//定义整型指针并赋初值
	printf("地址:%d\n",p);
	p++;		//指针自增运算 
	printf("地址:%d\n",p);
	p--;		//指针自减运算
	printf("地址:%d\n",p);
	p--;		//指针再次自减运算
	printf("地址:%d\n",p); 
 } 
输出结果
    地址:7339588
    地址:7339592
    地址:7339588
    地址:7339584

程序运行结果如上所示。

p指向变量a的地址,所以程序首先输出的是a的地址7339588,执行一次自增运算(p++)和两次自减运算(p–)后,输出的地址分别是7339592、7339588、7339584。可见,指针进行一次自增或自减运算,其地址不是增加或减少1个字节,而是增加或减少4个字节,这是因为指针p的数据类型为整型,而整型的字节宽度为4。

总结一下,指针指向的是某种数据类型的地址,由于不同数据类型有着不一样的字节宽度,所以指针自增或自减一次,会增加或减少不同的字节数,而不是单纯的加1或减1。

通过sizeof运算符可快速得知不同数据类型的字节宽度。

下面将上述实例中p的指针类型改为double,看一下指针自增、自减运算的结果。

程序代码如下:

 #include
using namespace std;
int main()
{
	double a=100;
	double *p=&a

你可能感兴趣的:(C++,c++)