关于c语言 指针问题希望大神帮我看戏图片
这道题中*p和p的关系有点看不懂说官方一点是(不能通过改变指针形参的值而使指针实参的值改变。)我可以这样理解吗如果不是我能这样理解吗?p能→*p而*p不能→p吗?...
这道题中 *p和p的关系有点看不懂 说官方一点是(不能通过改变指针形参的值而使指针实参的值改变。)我可以这样理解吗如果不是我能这样理解吗?p能→*p 而*p不能→p吗?
展开
1个回答
2016-08-10
展开全部
你这官方语句说的。。。而且你用错场合了,那是用在函数体里面的,用来传递值的改变等。
例题8.1和8.2区别就是在p类型定义的不同。理解起来挺简单的啊。
第一题里面P是整形变量,可以用来储存Int类型的变量。
第二题里面p值int类型的指针变量,是用来储存int类型变量的地址的。
第一题a,b的值发生了改变是因为p1,p2指向了a,b。并且通过了p这个整形变量作为中介将两个值进行了互换。
第二题里面a,b的值没有改变,因为if语句里面做的事情是通过p(注意这里的P是指针),将P1,和P2里面储存的地址进行了互换,说白了这和a,b并没有任何关系,只是改变了p1,和p2所指向的值的问题(因为地址互换了)。所以输出来*p1,*p2变成了b,a。
不懂得欢迎追问哈
例题8.1和8.2区别就是在p类型定义的不同。理解起来挺简单的啊。
第一题里面P是整形变量,可以用来储存Int类型的变量。
第二题里面p值int类型的指针变量,是用来储存int类型变量的地址的。
第一题a,b的值发生了改变是因为p1,p2指向了a,b。并且通过了p这个整形变量作为中介将两个值进行了互换。
第二题里面a,b的值没有改变,因为if语句里面做的事情是通过p(注意这里的P是指针),将P1,和P2里面储存的地址进行了互换,说白了这和a,b并没有任何关系,只是改变了p1,和p2所指向的值的问题(因为地址互换了)。所以输出来*p1,*p2变成了b,a。
不懂得欢迎追问哈
追问
谢谢啊 差不多懂了 以后不会的问你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询