猿问

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


short tell[20];

short (*pas)[20]=&tell
怎么解释?

qq_花开花谢_0
浏览 235回答 3
3回答

ITMISS

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

慕桂英546537

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

慕森卡

short tell[20]; 定义的是一个数组short (*pas)[20]定义的是一个指针,这个指针的类型是有20个元素的short数组
随时随地看视频慕课网APP
我要回答