当前位置:首页 » 编程语言 » c语言结构体没有名字
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言结构体没有名字

发布时间: 2022-12-26 13:37:49

‘壹’ c语言中结构体的问题

typedef就是自己定义一个变量类型,就像int,float,double就都是一个变量,然后你可以自己定义一个变量类型,使用的是已有的变量进行组合。
这个结构体就叫STREC。
都可以。
很多时候结构体是这样定义的
typedef struct STREC
{
char num[10];
double s;
} ;
这样就单单表示一个新结构的名字,没有实例化。
像你的情况是都可以是用的,既能作为变量,有能作为实例化对象。

‘贰’ C语言对结构体的自命名的方法和规则

1.结构体类型数据的定义方法和引用方法
定义结构体:struct 结构体名
{
成员列表
};
定义结构体类型的变量:有三种形式
① 定义类型时定义变量:struct 结构体类型名
{
成员列表
}变量名列表;
② 直接定义结构类型变量:struct
{
成员列表
}变量名列表;
③ 由已定义的结构体类型来定义变量:struct 结构体类型名变量名列表;
引用结构体类型变量:在定义了结构体类型变量后,采用下列方法引用结构体类型的
变量:
结构体变量名.成员名
这里"."是成员(分量)运算符,它在所有的运算符中优先级最高。
使用结构体时注意:
(1)结构体类型和结构体类型变量是不同的概念,定义结构体类型变量时应先定义
结构体类型,然后再定义变量属于该类型。
(2)定义了—个结构体类型后,系统并没有为所定义的各成员项分配相应的存储
间。只有定义了一个结构体类型变量,系统才为所定义的变量分配相应的存储空间。结构
体类型变量占用内存的字节数是所有成员占用内存长度之和。
(3)结构体成员的引用。如果一个结构体中又嵌套一个结构体,则要访问一个成员
时,应采取外层向内层逐级访问的方法。

‘叁’ 结构体c语言是什么

在C语言中,结构体(struct)指的是一种数据结构,是C语言中复合数据类型(aggregate data type)的一类。

结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

一、成员访问

结构体成员依据结构体变量类型的不同,一般有2种访问方式,一种为直接访问,一种为间接访问。直接访问应用于普通的结构体变量,间接访问应用于指向结构体变量的指针。

直接访问使用结构体变量名.成员名,间接访问使用(*结构体指针名).成员名或者使用结构体指针名->成员名。相同的成员名称依靠不同的变量前缀区分。

二、变量存储

在内存中,编译器按照成员列表顺序分别为每个结构体变量成员分配内存,当存储过程中需要满足边界对齐的要求时,编译器会在成员之间留下额外的内存空间。

如果想确认结构体占多少存储空间,则使用关键字sizeof,如果想得知结构体的某个特定成员在结构体的位置,则使用offsetof宏(定义于stddef.h)。

匿名struct

匿名struct、匿名union以及C++的匿名class,是指既没有类型名,也没有直接用这种类型定义了对象;如果紧随类型定义之后,又定义了该类型的对象,就不算是匿名类型,与普通情形的使用是一样的。

匿名类型作为嵌套定义,即在一个外部类(这里的类是指struct、union、class)的内部定义,则编译器就在匿名类型定义之后定义一个无名变量,并把该匿名类型的数据成员的名字提升到匿名类的外部类的作用域内。

如果匿名类型是连续嵌套,则最内部的匿名类型的成员名字被提升到最外部的可用变量名字访问的类的作用域内。

‘肆’ c语言。结构体那边的求大师,,我就想问下面这个结构体,没有struct,也没有成员名,这是怎么回事,

如果用
typedef struct
{
.....;
}STREC;
// 这样定义结构体,定义结构体变量的时候就可以不用写struct;
初始化的时候只要按顺序填入初始值就可以了,不用写成员名的

‘伍’ c语言问题,为什么用结构体姓名一栏输不出来,程序如下

对的 就是因为你没有用getchar()也就是冲掉回车键

‘陆’ C语言中结构的定义不带名称与带了名称有什么不同

个人认为没什么多大的不同,我也关注中.希望有高手说一下.其实typedef是自定义类型,像第一个的typedef有点多余的意思,因为后面的都没有说出自己的自定义是什么类型,
第二就是最常见的了,以后你写这个结构体的时候就可以用SC来代表struct C,而不用每一次用到这个结构体时都写成struct C /*名*/
第三个我也有点看不懂,望有人能解决,个人认为第三个和第二个没有区别.

‘柒’ c语言结构体使用时能省略结构体名称吗

vb有with语句,因此可以这样使用:
with(对象名)
......
End With
而C语言没有类似的语句,因此不可以。

‘捌’ C语言的结构体名可以为空吗比如struct {……}

结构的名称可以为空,看下例:

intmain()
{
struct{
intp;
}a,b;
a.p=1;
return0;
}

这段代码中定义了两个结构体变量a和b。但是在后面的代码里,不能再使用这个结构定义其他的变量。因为它没有名字。


如有帮助,请点击采纳按钮,谢谢支持!

‘玖’ c语言问题 图中定义结构体为什么要加typedef,这样不就没有结构体名了么,定义day函数时参数

在C中定义一个结构体类型要用typedef:
typedef struct Student
{
int a;
}Stu;
于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)
这里的Stu实际上就是struct Student的别名。Stu==struct Student
另外这里也可以不写Student(于是也不能struct Student stu1;了,必须是Stu stu1;)
typedef struct
{
int a;
}Stu;

‘拾’ C语言定义结构体时,为什么只有name前有*,其他变量前没有

定义结构体变量其实就跟定义普通的变量相似,比如你在定义指针变量的时候,会有这样的定义:int *p;同样在定义结构体变量的时候也有这样的定义。
就拿你说的这个而言,name 表示的就是一个指针型的结构体变量。它里面存的是一个地址,这个地址就是它所指向的那个结构体的首地址。
总的来说*一般情况下表示的就是指针