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.


最后,推荐我们的管理工具给大家。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部