首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么指针在C++中被认为是复合类型?

为什么指针在C++中被认为是复合类型?
EN

Stack Overflow用户
提问于 2018-02-13 08:45:11
回答 3查看 659关注 0票数 9

我的理解是:复合类型由原始类型和其他复合类型组成。我知道数组、函数、类、联合和枚举都是复合类型。为什么指针是复合词?它由哪些原语类型组成?

EN

回答 3

Stack Overflow用户

发布于 2018-05-26 21:22:03

我认为其基本原理可以在“基本概念”下的标准中找到(例如,C++14中的第3节):

最后,这个子句介绍了语言的基本类型,并列出了从这些类型构造复合类型的方法。

因此,复合类型实际上只是从另一个底层类型创建的类型。指针当然符合这个定义,因为您是从T构造pointer-to-T的。

从历史的角度来看,这很可能是从C继承过来的,因为它有相同的概念,尽管它指的是类型和对象/函数以及派生类型。那里的派生类型似乎反映了相同的东西(至少是那些在两种语言中通用的东西),包括指针。

票数 5
EN

Stack Overflow用户

发布于 2019-03-27 03:35:21

指针是复合类型,因为它同时存储内存地址和数据类型。答案来自穆拉赫的C++编程一书。

票数 1
EN

Stack Overflow用户

发布于 2019-03-27 04:08:45

指向不同类型的指针是不同的,所以指针包含了一些关于它所指向的类型的信息,to.And指针至少有两个特殊的功能,它们是*和->。

当然,int,char有一些函数,不同的是你只需要知道"it is int“或"it is char”,但是当你尝试使用*或->时,知道"it is pointer“,没有什么是不可行的( pointer++需要知道它的类型的大小)。

事实上,面向对象方法中的每一件事都应该被视为复合类型(或者我们更经常地称之为类),因为你总是需要使用数据来做一些事情(否则,数据的存在就没有意义了),如果是这样的话,你试图做的就是建议在类中以方法的形式出现,因为它是面向对象的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48757854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档