指针变量的自增、自减运算相比较于普通变量的自增、自减运算又什么区别呢?
让我们先来复习一下普通变量的自增、自减运算
int main()
{
int i; //定义一个整型变量
printf("请输入一个数字:\n");
scanf("%d", &i); //输入一个整型数
i++;
printf("结果是:%d\n", i);
return 0;
}
对于普通变量的自增运算简单来说就是对变量的加1减1,在前面的文章中对普通变量的自增、自减运算有详细的阐述,请查阅https://mp.csdn.net/mp_blog/creation/editor/141061746
那么对于指针变量的自增、自减运算是怎么样的?我们就通过一个例子,来观察一下。
main()
{
int i; //定义整型变量
int* p; //定义指针变量
printf("please input the number:\n");
scanf("%d", &i); //输入数据
p = &i; //将变量i的地址赋给指针变量p
printf("the result1 is:%d\n", p);
p++; //指针自增,地址加1,增加4个字节
printf("the result2 is:%d\n", p);
}
可以看到,代码输出的地址并不相同。
整型变量i在内存中占用四个字节,指针p是指向变量i的地址,这里的p++并不是简单的在地址上加1,而是指向了下一个存放整型变量的地址。
指针变量的自增又什么用呢?
我认为的是,将其指向下一个相邻的内存单元 。可以实现对下一个内存单元的数据存储。
指针的自减与自增类似,整型变量i在内存中占用四个字节,指针p是指向变量i的地址,这里的p--并不是简单的在地址上减1,而是指向了上一个存放整型变量的地址。
main()
{
int i; //定义整型变量
int* p; //定义指针变量
printf("please input the number:\n");
scanf("%d", &i); //输入数据
p = &i; //将变量i的地址赋给指针变量p
printf("the result1 is:%d\n", p);
p--; //指针自减,地址减1,减少4个字节
printf("the result2 is:%d\n", p);
}
以上便是本期的所有内容,欢迎大家进来共同讨论和学习,谢谢大家的观看!