为了账号安全,请及时绑定邮箱和手机立即绑定

如下C++ 关于指针的一些问题,求指教

如下C++ 关于指针的一些问题,求指教

qq_花开花谢_0 2022-05-11 15:11:16
有short tell[20];则short (*pas)[20]=&tell怎么解释?
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

派生类是可以转换成基类的,因为派生类本身就带有基类的成员,所以不需要强制转换,这也是为什么派生类的指针和引用可以转换为基类的指针和引用,基类的指针和引用只能访问基类的成员,也就是向上强制类型转换。
class Player
class GamePlayer : public Player
GamePlayer* pGamePlayer=new GamePlayer();
Player* pPlayer=pGamePlayer;
但是反之则不行,因为基类的只有自己的成员,没有派生类的成员,所以向下强制类型转换是不可以的。
但是GamePlayer* pGamePlayer = (GamePlayer*)pPlayer;这种方法虽然可以编译通过,但是后期使用起来很危险,非常容易出错1

查看完整回答
反对 回复 2022-05-15
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

如果无法理解,short (*pas)[20]=&tell
可以先拆成两句
short (*pas)[20];
pas=&tell;
类似 short (*pas)[20] 这种结构你尝试从右往左读就能明白含义~
有20个元素的数组-》指向有20个元素的数组的指针 -》元素类型为 short
那么 ,pas 就是指针,指向的是 一个有 20个 short元素的数组,
pas=&tell 就非常好理解了
使 pas指针指向 tell



查看完整回答
反对 回复 2022-05-15
?
慕森卡

TA贡献1806条经验 获得超8个赞

short tell[20]; 定义的是一个数组
short (*pas)[20]定义的是一个指针,这个指针的类型是有20个元素的short数组

查看完整回答
反对 回复 2022-05-15
  • 3 回答
  • 0 关注
  • 234 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信