c语言或者c++语言中定义了两个内容完全一样的结构体类型a和b;那么a的结构体指针可以指向b结构吗

结构体内部的变量类型和变量名称以及先后顺序都一样

这问题的说法本身就是错误的。结构体指针只能指向该结构体类型的变量,是不能指向结构体本身的;同一个结构体的对象无论有多少个,指向它们的指针都可以互相调换,要不然怎么叫指针“变量”呢?再说你试试系统让不让定义两个“完全一样”的结构体?至少名字要不一样吧!
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-17
完全一样!那是可以的追问

如果内部元素名称不同呢?类型相同

追答

那也可以!因为到底层都是对地址单元的访问!类型一样肯定没有问题

关于C语言结构体重复定义的问题
你所谓的结构体定义只是个声明,编译的时候并不会分配实际空间。只有在用它去定义一个变量的时候才会有具体的空间。类似一个概念,没有实体。所以在不同的文件中包含头文件,链接的时候不会有什么问题。但是你在main.cpp里又声明了一个同样名字的结构,就有冲突了,同一个名字有不同的内容,这个是不...

C\/C++编程笔记:C语言结构体想要直接赋值,应该如何实现?
从结果可以看出,C语言中结构体的直接赋值是可行的。我们可以通过查看struct_assign()函数的汇编实现,从底层了解C语言是如何实现两个结构体之间的赋值操作的。这段汇编比较简单,由于结构体的对齐特性,sizeof(struct Foo)为16,通过四次movl操作将foo1的结构体内容拷贝到结构体foo2中。从汇编上可以看出...

C语言中如何判断两个结构体中每项内容完全相等,除了对每个分量逐个比较...
然后使用两个指针将两个结构体强制转换为char类型指针再将这两个字符指针一 一对比这样就能检查是否相等了。

C语言与C++结构体的区别
我这样跟你说吧,C语言中的结构体与C++里的结构体没有什么区别,但在C++里多了一个类,其实类和结构体是一样的,只不是类在默认的情况下是私有的,而结构体在默认情况下是公有的;例如:我们写到 struct name{ int a;...};其实它真正的是:struct name{ public:int a;...};在C++中 以cla...

结构体最后大括号后面跟两个指针
结构体是一种自定义的数据类型,它由多个不同类型的变量组成,可以同时存储多种不同类型的数据。在C语言中,结构体最后的大括号后面可以跟一个或多个指针,这使得结构体可以更加灵活地使用。下面我们来详细介绍结构体最后大括号后面跟两个指针的用法。一、指向结构体的指针 结构体最后大括号后面跟一个...

关于结构体、结构体数组、结构体指针的定义及使用
首先,结构体是C语言中的数据组织方式,它允许将不同类型的数据组合成新的数据结构。例如,学生信息结构可能包含姓名、学号、性别和年龄,这些数据虽类型各异,但通过结构体封装,使用起来更方便,利于代码管理和移植。结构体的定义通常通过`struct`关键字进行,有多种方法,如直接定义和typedef别名。理解...

结构体是什么
结构体是一种编程语言中的数据类型。结构体是一种复合数据类型,用于将多个不同类型的数据组合成一个单一的数据单位。在许多编程语言中,如C语言、C++等,结构体是一种非常常用的数据结构。它允许程序员将多个变量组合成一个整体,以便能够一次性地处理这些变量。通过这种方式,结构体可以帮助提高代码的...

c++怎么定义结构体
c++ 结构体的定义 1.什么是结构体 所谓结构体数组,是指数组中的每个元素都是一个结构体。在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。 结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构 struct 结构体类型名{类型名...

结构体中的成员可不可以是结构体名的指针?
这不算是递归,在结构体中可以有该结构体的指针,如链表的实现就是这样的。在C++中还可以包含该结构体的引用,但是不能包含该结构体的变量。

C语言的结构体名可以为空吗?比如struct {……}
结构的名称可以为空,看下例:int main(){ struct { int p; }a, b; a.p = 1; return 0;}这段代码中定义了两个结构体变量a和b。但是在后面的代码里,不能再使用这个结构定义其他的变量。因为它没有名字。如有帮助,请点击采纳按钮,谢谢支持!

相似回答