精华内容
下载资源
问答
  • 话说C语言是很多语言学习的基础,理解并掌握好了C语言的一些语法规则,对于以后学习或者说自学...结构体变量的定义方式三种:1、先定义结构体,再定义变量:eg.structstudent{charname[10];intstu_num;intage;};...

    话说C语言是很多语言学习的基础,理解并掌握好了C语言的一些语法规则,对于以后学习或者说自学其他语言,可以节省不少的时间。下面我们就来了解C语言程序当中的结构体知识点。

    8659e626f92316ca022807a728305e66.png

    结构体的定义形式如下:

    struct 结构体名

    {

    结构体成员

    };

    结构体变量的定义方式有三种:

    1、先定义结构体,再定义变量:

    eg.struct student{

    char name[10];

    int stu_num;

    int age;

    };                                      //注意后面的;(分号)不能省略掉,切记切记!!!

    struct student s1,s2;       //声明变量s1和s2为student结构体类型

    2、定义结构体的同时定义变量:

    eg.struct student{

    char name[10];

    int stu_num;

    int age;

    }s1,s2;

    在定义结构体student的同时定义了结构体变量s1,s2

    3、只定义结构体变量

    eg.struct{

    char name[10];

    int stu_num;

    int age;

    }s1,s2;

    在这种情况下,如果还想定义一个变量s3,那么要使用和定义s1、s2一样的方法。

    将typedef(typedef声明类型,声明一个新的类型名来代替已有的类型)和结构体结合,比如说:typedef struct_stu{

    char name[10];

    int stu_num;

    int age;

    }student;

    这个时候student就不是一个变量了,它是结构体struct _stu的别名,如果想定义一个变量,就可以直接使用student,例如:student  s1;

    而不需要struct_stu  s1;

    另外还可以定义结构体指针类型:typedef struct_stu{

    char name[10];

    int stu_num;

    int age;

    } *student;

    这个时候student s1;定义的变量就是一个结构体指针s1了。等价于struct _stu  *s1

    展开全文
  • C语言结构体定义

    2014-11-07 14:45:58
    结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计三种形式,分别介绍如下: 1) 先定义结构体类型,再...

    struct 结构体名{

      成员列表;

      .....

    }结构体变量;

    结构体类型变量的定义

    结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计有三种形式,分别介绍如下:

    1) 先定义结构体类型,再定义结构体类型变量:
    struct stu / *定义学生结构体类型* /
    {
         char name[20]; / * 学生姓名* /
         char sex; / * 性别* /
         long num; / *学号* /
         float score[3]; / * 三科考试成绩* /
    };
    struct stu student1,student2;/ * 定义结构体类型变量* /
    struct stu student3,student4;
    用此结构体类型,可以定义更多的该结构体类型变量。

    2 ) 定义结构体类型同时定义结构体类型变量:
    struct data
    {
         int day;
         int month;
         int year;
    } time1,time2;
    也可以再定义如下变量:
    struct data time3,time4;
    用此结构体类型,同样可以定义更多的该结构体类型变量。

    3) 直接定义结构体类型变量:
    struct
    {
         char name[20]; / *学生姓名* /
         char sex; / *性别* /
         long num; / *学号* /
         float score[3]; / *三科考试成绩* /
    } person1,person2; / *定义该结构体类型变量* /
    该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。 
     
    第一次接触c语言距今有五年了,惭愧
    展开全文
  • Nasm 结构体定义

    千次阅读 2012-12-06 22:12:19
    1. 结构体定义 在NASM内部,没有实际意义上的定义结构体类型的机制,NASM使用宏 STRUC 和 ENDSTRUC来定义一个结构体。STRUC一个参数,它是结构体的名字。可以使用“RESB”类伪指令定义结构体的域,然后使用...

    1. 结构体定义

    在NASM内部,没有实际意义上的定义结构体类型的机制,NASM使用宏 STRUC 和 ENDSTRUC来定义一个结构体。STRUC有一个参数,它是结构体的名字。可以使用“RESB”类伪指令定义结构体的域,然后使用ENDSTRUC来结束定义。

    如下,定义一个名为“mystruc"的结构体,包含一个long, 一个word, 一个byte和一个字符串。

    struc mytype
             mt_long:  resd  1
             mt_word: resw 1
             mt_byte:  resb  1
             mt_str:     resb  32
    endstruc
    

    在上面的代码中定义了,mt_long 在偏移地址0处,mt_word在4,mt_byte 在6,mt_str在7。

    如果想要在多个结构体中使用具有同样名字的成员,可以把结构体定义成这样:

    struc mytype
    		.long: 	resd	1
    		.word:	resw	1
    		.byte:	resb	1
    		.str:	resb	32
    endstruc 


    2. 结构体声明

    声明一个结构体使用”ISTRUC“、”AT“ 和 “IEND”宏。在程序中声明一个“mystruc"结构体,可以像如下代码一样:


    使用定义一:

    MYSTRUC:
    istruc
    	at 	mt_long, 	dd		123456
    	at 	mt_word,	dw		7890
    	at 	mt_byte,		db		'a'
    	at	mt_str,		db		'abcdefg',0
    iend	

    使用定义二:

    MYSTRUC:
    istruc mytype
    	at	mytype.long,	dd		123456
    	at	mytype.word,	dw		7890
    	at	mytype.byte,	db		'a'
    	at	mytype.str,		db		'abcdefg',0
    iend

    3.  示例一

    jmp start
    struc mytype
    	.num:		resd	1
    	.str:		resb	32
    endstruc
    
    MYDATA:
    istruc mytype
    	at	mytype.num,		dd	32
    	at	mytype.str,		db   'hello, world', 0
    iend
    
    start:
    	mov ax, cs
    	mov ds, ax
    
    	mov ax, 0b800h
    	mov es, ax
    	
    	xor edi,edi
    	xor esi,esi
    	mov ah, 0ch
    	mov esi, MYDATA + mytype.str
    	mov edi, (80 * 10 + 0)*2
    	cld
    .1:	lodsb
    	test al, al
    	jmp .2
    	mov [es:edi], ax
    	add di, 2
    	jmp .1
    .2:
    
    	mov ax, 4c00h
    	int 21h
    
    
    
    




    展开全文
  • 结构体定义常出错

    2019-12-13 15:36:55
    结构体定义常出错 对于自定义名字的结构体:(看下面什么错呢?) typedef struct { int key; char name[20]; ElemType *next; } ElemType; 出现错误:error C2501: ‘next’ : missing storage-class or ...

    结构体定义常出错

    对于自定义名字的结构体:(看下面有什么错呢?)

    typedef struct
    {
    	int key;
    	char name[20];
    	ElemType *next;
     } ElemType;
    

    出现错误:error C2501: ‘next’ : missing storage-class or type specifiers。经修改如下:

    typedef struct Lnode
    {
    	int key;
    	char name[20];
    	struct Lnode *next;
     } ElemType;
    

    那为什么呢? 不常用我也忘了结构体的知识了:

    ———————————————————————————
    下面讲讲结构体吧:
    1: 最基本的结构体:

    struct tag {      //声明一个叫tag类型的结构体
        数据类型+变量名;  
        ...
    } 变量名 ; 
    //定义变量:struct tag + 变量名
    

    2:自定义结构体:

    typedef struct{		//声明一个叫tag类型的结构体
    	数据类型+变量名;  
        ...
    }tag;
    //定义变量:tag + 变量名
    

    ———————————————————————————
    那回到正题,上面哪里出错了呢? 因为直接在next前面用了ElemTypy的类型,但是这个时候此类型还没有没定义,所以,当要自定义一个变量类型,且里面有自己的类型变量时,就要先声明一个tag类型以便使用。

    展开全文
  • 1. 结构体定义 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体一个或多个成员。type 语句设定了结构体...
  • 结构体定义几种方式

    2019-01-18 16:04:56
    共计三种形式,分别介绍如下: 先定义结构体类型,再定义结构体类型变量: 定义学生结构体类型 struct stu { char name[20]; //学生姓名 char sex; //性别 long num; //学号 float score[3]; //三科考试成绩 }; ...
  • 结构体的基本定义方法三种: struct 结构体名 变量名; struct 结构体名 变量名 = { 成员1值, 成员2值... }; 定义结构体时顺便创建变量; 这三种的具体代码如下: /* ------------------ 1.struct 结构体名 ...
  • 结构体定义的时候初始化 查了翻译也看不懂,之后做了修改 没有错误!...就开始明白是我想要给结构体初始化的方式有了错误,特意去查如何进行...有如下几种 1.struct user1 administrator={"Alter__","123456789
  • 结构体定义的几种方式

    千次阅读 2018-12-04 17:32:52
    ---------------------  作者:mengxiangjia_linxi  来源:CSDN  ...版权声明:本文为博主原创文章,转载请附上博文...共计三种形式,分别介绍如下: 1) 先定义结构体类型,再定义结构体类型变量: 定义学生结构...
  • MFC内结构结构体定义

    千次阅读 2013-08-01 09:19:51
    定义数据结构体'PRPGRAM_ORDER总出现如下警告 warning C4183: 'PRPGRAM_ORDER': member function definition looks like a ctor 解决方法:  1)查看费城原函数是否返回值  2)构造函数定义时多加了分号 ...
  • 结构体定义形式如下: struct 结构体名 {  结构体成员 }; 结构体变量的定义方式三种: 1、先定义结构体,再定义变量: eg. struct student{  char name[10];  int age;  int student_number; };...
  • 1.符号位定义的成员,使用定义时长度应该大于1,否则在赋值打印显示的时候,会出现明明赋值的是1,显示为-1的情况,这其中涉及了一个符号位扩展规则,具体可自查。 2.对于按位定义结构体内存分配,也仍然需要...
  • 首先,有如下代码: test.c struct A{ int a; struct B b; }; struct B{ int b; struct A a; }; 编译它:gcc -c test.c 会提示: 因为在定义struct A的时候,编译器检测不了struct B的长度,即占多少...
  • 在面向接口、面向对象编程的过程中,会遇到实际物体类别与定义类别相分离的情况。 例如,我们三种物体,他们的固有类别分别为: TYPEA,TYPEB,TYPEC。...定义物体具体属性和结构体如下: #define TY...
  • 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计三种形式,分别介绍如下:1) 先定义结构体类型,再定义...
  • 说明:按几字节对齐,是根据结构体的最长类型决定的,这里是函数指针是最长的字节,所以按8字节对齐) 所以该结构体占 24个字节。 不能平台数据类型与所占字节表: 数据类型 32...
  • Problem F: 用结构体来表示数组 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1998 Solved: 1368 ...有如下结构体定义: typedef struct { int length; int array[MAX_SIZE]; }ARR_TYPE; 其...
  • C /C ++中结构体定义

    2014-11-28 17:56:00
    c语言中结构体定义: ...但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计三种形式,分别介绍如下:1) 先定义结构体类型,再定义结构体类型变量:struct stu /...
  • 一、首先从结构体说起 结构体是若干值的集合,结构的成员可以是标量、...结构体声明如下: struct tag//tag是结构体标签,可以,可以没有 { member-list; //成员列表 }variable-list;//结构体变量,可以多个
  • 结构体

    2020-11-09 21:24:52
    member-list表示结构体成员列表,至少一个成员变量。 variiable-list表示结构体声明并定义一个变量,可有可无。 //不能如下这么定义无法访问 struct { member-list; }; //可以如下定义但是只能用于variable-lis...
  • 2.编写一个函数print,打印一个学生的成绩数组, 该数组中5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。 代码如下:#include<stdio.h> struct ...
  • 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计三种形式,分别介绍如下: 1) 先定义结构体类型,再定义...
  • 定义结构体类型的一般语句形式如下: struct 结构体类型名 { 数据类型 成员名1; 数据类型 成员名2; …… 数据类型 成员名n; }; 一、定义结构体类型变量 ㈠先定义结构体类型再定义变量 struct 结构体类型名 { 成员...
  • **问题:**在网上看到别人写的c++定义构造函数的代码如下: ``` struct Gnode{ int label; // vector*> nbs; Gnode(int x): label(x) {} //构造函数 ? }; ``` 请问,这个第3行构造...
  • 有如下结构体定义:  typedef struct cemsg  {  uchar dl;  uchar mg;  uchar data[10];  }CEMSG;  typedef struct msg{  uchar id;  uchar cmd;  uchar byte[4];  }MSG;  typedef struct ...
  • 关于结构体声明和定义的几种方式

    万次阅读 2018-09-04 09:50:04
    结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计三种形式,分别介绍如下:1) 先定义结构体类型,再定义...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,343
精华内容 537
关键字:

有如下结构体定义