c++中的指针变量一般用*a *b形式标示.但有时会用a无星号形式,请问有何不同. 例如*a=b *a=*b看2,3楼的追问.*a=b;*a=*b;**a=*b;作用应该是一样的,但原理上应该是不同的.那位大神能解答啊?!

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/04 14:34:55
c++中的指针变量一般用*a *b形式标示.但有时会用a无星号形式,请问有何不同. 例如*a=b *a=*b看2,3楼的追问.*a=b;*a=*b;**a=*b;作用应该是一样的,但原理上应该是不同的.那位大神能解答啊?!
xSn@~zu,#$6^"5iIsP0Q#c />:R*Ћw<3|3f qwAkF',ո~Z3IIH*7tTb/I"5˴ mhgJd^uh֒ mAR^ H*3/WOFtLK kqۢ[dC,r0 ca2eր t-yQߥɼ1eT>KS9pMƾ^dTb7h3xGCw0C?vG`.&-0lhk KG5Aв4"ʸG6BkZoeQPc9~?.K?Yylxe-u^z99j玷*){/RF[Μ)eYE=%@> G>bBw; v9-O5: Pb@To>D/&xJOc2=,"

c++中的指针变量一般用*a *b形式标示.但有时会用a无星号形式,请问有何不同. 例如*a=b *a=*b看2,3楼的追问.*a=b;*a=*b;**a=*b;作用应该是一样的,但原理上应该是不同的.那位大神能解答啊?!
c++中的指针变量一般用*a *b形式标示.但有时会用a无星号形式,请问有何不同. 例如*a=b *a=*b
看2,3楼的追问.
*a=b;*a=*b;**a=*b;作用应该是一样的,但原理上应该是不同的.那位大神能解答啊?!

c++中的指针变量一般用*a *b形式标示.但有时会用a无星号形式,请问有何不同. 例如*a=b *a=*b看2,3楼的追问.*a=b;*a=*b;**a=*b;作用应该是一样的,但原理上应该是不同的.那位大神能解答啊?!
其实C代码编译成二进制后是不分类型的.指针的值就是虚拟存储的一个地址,地址也是值,也可以放在内存里.
*a=b就是说指针a所指向的地址里的内容换成b;
*a=*b就是说将指针b指向的地址里的内容放到指针a所指向的地址里;
至于**a=*b,就是说,a指向的地址里存放的也是个地址,如果设这个地址为c,那么c的值就是*a,那么**a也就是*c,上式就等价于*c=*b.
当然,C编译器在编译时要执行类型检查,你不能直接把一个int类型的变量复制给*int类型的变量,这就需要类型强制转换.