C++和C的结构等价性的不同

C++中,结构按名称等价,而C中,结构按布局相容性等价。

 1 struct A
 2 {
 3     int x,y;
 4 };
 5
 6 struct B
 7 {
 8   int x,y;
 9 };
10
11 int main()
12 {
13     struct A a;
14     struct B b;
15     struct A *pa = &a;
16     struct B *pb = &b;
17     pa = pb;
18     return 0;
19 }

该代码在纯C编译环境中,能顺利通过,一般会给出警告信息告知17行中的赋值中类型不兼容。

但是在C++的编译环境中,会直接给出错误,无法通过编译,必须显示转换。

原文地址:https://www.cnblogs.com/zfwxkd/p/11980044.html

时间: 2024-10-12 02:29:39

C++和C的结构等价性的不同的相关文章

自动机的等价性

什么是自动机的等价性:前面我们讲过如果两个文法生成的语言相同,那么我们认为这两个文法是等价的.这里道理是一样的,如果两个自动机识别的语言相同,那么我们也认为它们是等价的.为了讨论自动机的等价性,需要先对自动机中的映射进行扩展. 1,对自动机的映射进行扩展 原来的映射 t:Q × ∑ → Q            扩展之后的映射 t:Q × ∑* → Q DFA 扩展之后的映射定义为: t(q,ε) = q t(q,aα) = t(t(q,a),α)  其中,q ∈ Q,a ∈ ∑,α ∈ ∑*.

数据结构 《18》----RMQ 与 LCA 的等价性 (一)

前言     RMQ: 数组 a0, a1, a2,..., an-1, 中求任意区间 a[i+1], a[i+2], ..., a[i+k] 的最小值     LCA: 求二叉树中两个节点的最低公共祖先 本文将证明这两个问题可以相互归约为另一个问题. 证明 先通过一个简单的例子来说明问题.见下图: 求 [7 2 8 6] 的最小值 2,等价于求二叉树中节点 7 和 节点6的 LCA,也就是 节点2. 有意思吧... 一. RMQ -> LCA 给定一个数组,如何求出其对于的二叉树呢?? 方法1

【转】Eric's并发用户数估算与Little定律的等价性

转自:http://www.cnblogs.com/hundredsofyears/p/3360305.html 在国内性能测试的领域有一篇几乎被奉为大牛之作的经典文章,一个名叫Eric Man Wong 于2004年发表了名为<Method for Estimating the Number of Concurrent Users>,里面介绍了一种对系统并发用户数估算的公式,并较为详细的阐述了过程以及证明方法.这个公式使用非常简单,很多性能测试工程师都在自己的项目中使用或者打算尝试使用,以至

软件构造 第三章第五节 ADT和OOP中的等价性

第三章第五节 ADT和OOP中的等价性 1.==与equals ==是引用等价性 :而equals()是对象等价性. == 比较的是索引.更准确的说,它测试的是指向相等(referential equality).如果两个索引指向同一块存储区域,那它们就是==的.对于我们之前提到过的快照图来说,==就意味着它们的箭头指向同一个对象. equals()操作比较的是对象的内容,换句话说,它测试的是对象值相等(object equality).在每一个ADT中,equals操作必须合理定义 2.等价性

抽象数据类型(ADT)和面向对象编程(OOP)3.5 ADT和OOP中的等价性

instancsof动态类型检查.除了在判断是否与应生成的类型一样外都不使用,getClass()同样 ==引用等价性 equals()对象等价性  基本数据类型使用 在自定义ADT时需要重写Object的equals()   对象类型使用 a.equals(null) returns false equals()的自反性:自己等自己   传递性:a等b,b等c,则a等c   对称性:a等b,则b等a 重写equals()必须也要重写hashCode(),相等的对象必须具有相同的散列码,如果没有

instanceof与class的等价性

java编程思想中,关于查询类型信息时,对instanceof的形式与直接比较class对象(equals的形式),给出了一个很重要的差别. class Animal{} class Dog extends Animal{} public class AnimalMain { static void test(Object obj){ System.out.println("obj的类型: " + obj.getClass()); System.out.println("ob

LA 4287 等价性证明(强连通分量缩点)

https://vjudge.net/problem/UVALive-4287 题意: 给出n个结点m条边的有向图,要求加尽量少的边,使得新图强连通. 思路:强连通分量缩点,然后统计缩点后的图的每个结点是否还需要出度和入度. 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<cstdio> 5 #include<sstream> 6 #include

社会模式的发掘和可视化

<数据可视化之美>一书的第五章和第六章分别讲了两个故事:重新设计纽约地铁图和航班飞行动态图.这两个故事共同点都是“地图的二次开发”.这两个故事不同点在于前者更近是传统的信息可视化的扩展,后者是以美国航班实际数据作得典型的数据可视化.地图可以说是人类最早做出的信息可视化成品,千百年来一直在不断演进,相关技术资料.衍生品内容极多.日后可能需要对地图制作及其相关技术进行专门的讨论.本人目前研究的主要内容是数据挖掘和数据可视化.故而我的第五篇读后感从第七章“你的选择揭示你是谁——社会模式的挖掘与可视化

《社会媒体挖掘》pdf格式下载免费电子书下载

<社会媒体挖掘>pdf格式下载免费电子书下载  https://u253469.ctfile.com/fs/253469-300325732更多电子书下载: http://hadoopall.com/book 内容简介 本书集成了近年来社会媒体.社会网络分析以及数据挖掘的前沿成果,为学生.从业者.研究人员和项目经理提供了一个方便的平台,以便理解社会媒体挖掘的基础知识和潜能.本书介绍了社会媒体数据的问题,并阐述了网络分析和数据挖掘的基本概念.新问题以及有效的算法. 作者简介 Reza Zafar