c++中的指针变量一般用*a *b形式标示.但有时会用a无星号形式,请问有何不同. 例如*a=b *a=*b看2,3楼的追问.*a=b;*a=*b;**a=*b;作用应该是一样的,但原理上应该是不同的.那位大神能解答啊?!
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 00:16:55
![c++中的指针变量一般用*a *b形式标示.但有时会用a无星号形式,请问有何不同. 例如*a=b *a=*b看2,3楼的追问.*a=b;*a=*b;**a=*b;作用应该是一样的,但原理上应该是不同的.那位大神能解答啊?!](/uploads/image/z/7802640-0-0.jpg?t=c%2B%2B%E4%B8%AD%E7%9A%84%E6%8C%87%E9%92%88%E5%8F%98%E9%87%8F%E4%B8%80%E8%88%AC%E7%94%A8%2Aa+%2Ab%E5%BD%A2%E5%BC%8F%E6%A0%87%E7%A4%BA.%E4%BD%86%E6%9C%89%E6%97%B6%E4%BC%9A%E7%94%A8a%E6%97%A0%E6%98%9F%E5%8F%B7%E5%BD%A2%E5%BC%8F%2C%E8%AF%B7%E9%97%AE%E6%9C%89%E4%BD%95%E4%B8%8D%E5%90%8C.+%E4%BE%8B%E5%A6%82%2Aa%3Db+%2Aa%3D%2Ab%E7%9C%8B2%2C3%E6%A5%BC%E7%9A%84%E8%BF%BD%E9%97%AE.%2Aa%3Db%3B%2Aa%3D%2Ab%3B%2A%2Aa%3D%2Ab%3B%E4%BD%9C%E7%94%A8%E5%BA%94%E8%AF%A5%E6%98%AF%E4%B8%80%E6%A0%B7%E7%9A%84%2C%E4%BD%86%E5%8E%9F%E7%90%86%E4%B8%8A%E5%BA%94%E8%AF%A5%E6%98%AF%E4%B8%8D%E5%90%8C%E7%9A%84.%E9%82%A3%E4%BD%8D%E5%A4%A7%E7%A5%9E%E8%83%BD%E8%A7%A3%E7%AD%94%E5%95%8A%3F%21)
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类型的变量,这就需要类型强制转换.