c语言中指针p和*p的区别
TOP1 8541
c语言中指针p和*p的区别主要体现在:1、表示的意义不同;2、数量形式不同;3、定义不同。p是一个指针变量的名字,表示此指针变量指向的内存地址,而*p表示此指针指向的内存地址中存放的内容。
两者之间的区别如下:
1、表示的意义不同
p是一个指针变量的名字,表示此指针变量指向的内存地址,而*p表示此指针指向的内存地址中存放的内容。
2、数量形式不同
p如果使用%p来输出的话,它将是一个16进制数。*p一般是一个和指针类型一致的变量或者常量。
3、定义不同
p存放的是地址,而*p是让程序去那个地址取出数据。
例子:
include
void main()
{
int x=3;
int p,q;
p=&x,q=&x;
printf(“%d\n”,*p++);
printf(“%d\n”,(*q)++);
printf(“%d\n”,x);
}
输出结果为:3,3,4;
解释:
p++:是先取出p的值,再使p加1
//p是个指针,给p加1,相当于让p指向了x所在地址的下一个位置,而对于x则是没有任何影响
(p)++:是使p的值加1.
//p则是p指向的位置对应的值,题目中是q,所以此时的q就是x的值,为3,当输出q之后,再给*q即x自加1,综上所述,x就会变为4.
最后,推荐我们的管理工具给大家。