-
结构体定义
2019-05-24 19:03:45对于C语言结构体定义(不使用typeof)有三种方式: 1.先定义类型再定义变量 struct stu//stu为结构体的名字 { char name[10]; float score; }; //该种定义方式如何声明结构体变量 struct stu student1,student2; ....喜欢你没道理,美丽
对于结构体的定义有点忘了,尤其是typeof,特写此博客来帮助记忆一下
对于C语言结构体定义(不使用typeof)有三种方式:
1.先定义类型再定义变量
struct stu//stu为结构体的名字 { char name[10]; float score; }; //该种定义方式如何声明结构体变量 struct stu student1,student2;
2.在定义类型的时候同时定义变量
struct stu { char name[10]; float score }student1,student2;//定义结构体的同时,定义了两个结构体变量student1,student2 //主函数内如何声明结构体变量 struct stu student3;
3.直接定义结构体变量
//该种方式省略了结构体的名称,仅能一次性定义变量,无法在别处定义该结构体类型的变量 struct { char name[10]; float score }student1,student2;
对于C语言结构体定义(使用typeof)
方式1
typedef struct Student { int a; }Stu; //声明变量,此处的Stu就不是变量了,而是struct Student的别名 Stu stu1; struct Student stu2;
方式2
typedef struct { int a; }Stu; //声明变量 Stu stu1;
对于C++结构体的定义
方式1
struct Student { int a; }; //声明变量 Student stu1;
方式2
typedef struct Student { int a; }Stu;//Stu是结构体别名 //声明变量 Stu stu1; struct Student stu2
-
结构体定义 typedef struct 用法详解和用法小结
2018-07-31 22:25:48若struct node{ }这样来定义结构体的话。在定义 node 的结构体变量时,需要这样写:struct node n; 若用typedef,可以这样写:typedef struct node{}NODE; 。在申请变量时就可以这样写:NODE n;其实就相当于 NODE 是...typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。
具体区别在于:
若struct node{ }这样来定义结构体的话。在定义 node 的结构体变量时,需要这样写:struct node n;
若用typedef,可以这样写:typedef struct node{}NODE; 。在申请变量时就可以这样写:NODE n;其实就相当于 NODE 是node 的别名。区别就在于使用时,是否可以省去struct这个关键字。首先:
在C中定义一个结构体类型时如果要用typedef:
typedef struct Student { int no; char name[12]; }Stu,student;
于是在声明变量的时候就可:Stu stu1;或者:student stu2;(Stu 和student 同时为Student的别名)
如果没有typedef即:struct Student { int no; char name[12]; }Stu;
就必须用struct Student stu1;或者struct Stu stu1;来声明
另外这里也可以不写Student(于是也不能struct Student stu1;了)typedef struct { int no; char name[12]; }Stu;
其次:
在c++中如果用typedef的话,又会造成区别:
struct Student { int no; char name[12]; }stu1;//stu1是一个变量
typedef struct Student2 { int no; char name[12]; }stu2;//stu2是一个结构体类型,即stu2是Student2的别名
使用时可以直接访问stu1.no
但是stu2则必须先定义 stu2 s2;
然后 s2.no=10; -
C语言结构体定义
2018-08-29 16:52:36C语言结构体定义在我看来类似数据库的表 如: #include <stdio.h> #include <string.h> struct st1 { int id; char name[30]; char sex; int score; }; ...C语言结构体定义在我看来类似数据库的表
如:
#include <stdio.h>
#include <string.h>
struct st1
{
int id;
char name[30];
char sex;
int score;
};
int main()
{
struct st1 s1;
s1.id = 1;
strcpy(s1.name,"张三");
s1.sex = 'm';
s1.score = 90;
puts("学号\t姓名\t性别\t分数");
printf("%d\t%s\t%c\t%d\n",s1.id,s1.name,s1.sex,s1.score);
printf("%d\t%s\t%c\t%d\n",s1.id,s1.name,s1.sex,s1.score);
printf("%d\t%s\t%c\t%d\n",s1.id,s1.name,s1.sex,s1.score);
printf("%d\t%s\t%c\t%d\n",s1.id,s1.name,s1.sex,s1.score);
printf("%d\t%s\t%c\t%d\n",s1.id,s1.name,s1.sex,s1.score);
printf("%d\t%s\t%c\t%d\n",s1.id,s1.name,s1.sex,s1.score);
return 0;
}
结果:
学号 姓名 性别 分数
1 张三 m 90
1 张三 m 90
1 张三 m 90
1 张三 m 90
1 张三 m 90
1 张三 m 90
例2:cat st3.c
#include <stdio.h>
#include <string.h>
typedef struct st1
{
int n;
char m[20];
}a; //这里a是整个结构体的缩写,如:typedef unsigned int UINT,这里UNIT既是前面unsigned int 的缩写,注意如果这里没有typedef,那么后面a是一个结构体变量,而不是结构体定义的缩写。
void input (a* pa)
{
printf("please input your id and name:");
pa -> n = 8; //这里是指针初始化赋值,另外可以用(*pa).n = 8来赋值,等价的关系
strcpy(pa -> m , "apple"); //给一个指针字符串赋值
scanf("%d,%s",&pa -> n,pa -> m);
}
void print (a s)
{
puts("id\tname");
printf("%d\t%s\n",s.n,s.m);
}
int main ()
{
struct st1 s1; //定义结构体变量s1
a s2; //定义结构体变量s2 这里用到了上面的缩写a代替struct st1
// printf("Please input your id and name:");
// scanf("%d,%s",&s1.n,s1.m);
s2.n = 10; //结构体变量赋值
s1.n = 11;//结构体变量赋值
input(&s1);//调用输入函数
print(s1);//输出你输入的内容
return 0;
}
cc st3.c -Wall
./a.out
please input your id and name:8,orange //敲入8,orange 下面是输出的结果
id name
8 orange
-
bilibiliC++64结构体-结构体定义和使用
2021-01-29 10:07:528.2 结构体定义和使用 语法:struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种: struct 结构体名 变量名 struct 结构体名 变量名 = { 成员1值 , 成员2值…} 定义结构体时顺便创建变量 示例...8 结构体
8.1 结构体基本概念
结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
8.2 结构体定义和使用
语法:
struct 结构体名 { 结构体成员列表 };
通过结构体创建变量的方式有三种:
- struct 结构体名 变量名
- struct 结构体名 变量名 = { 成员1值 , 成员2值…}
- 定义结构体时顺便创建变量
示例:
//结构体定义 struct student { //成员列表 string name; //姓名 int age; //年龄 int score; //分数 }stu3; //结构体变量创建方式3 int main() { //结构体变量创建方式1 struct student stu1; //struct 关键字可以省略 stu1.name = "张三"; stu1.age = 18; stu1.score = 100; cout << "姓名:" << stu1.name << " 年龄:" << stu1.age << " 分数:" << stu1.score << endl; //结构体变量创建方式2 struct student stu2 = { "李四",19,60 }; cout << "姓名:" << stu2.name << " 年龄:" << stu2.age << " 分数:" << stu2.score << endl; stu3.name = "王五"; stu3.age = 18; stu3.score = 80; cout << "姓名:" << stu3.name << " 年龄:" << stu3.age << " 分数:" << stu3.score << endl; system("pause"); return 0; }
总结1:定义结构体时的关键字是struct,不可省略
总结2:创建结构体变量时,关键字struct可以省略
总结3:结构体变量利用操作符 ‘’.’’ 访问成员
-
go 结构体定义和结构体指针
2019-07-15 18:32:00结构体一个结构体(`struct`)就是一个字段的集合。 将来要使用它向java 、C# 中的class 有相同的地位 ...结构体定义 type YourName struct 例如: type Vertex struct { X int Y int} -------------... -
数据结构常用的结构体定义
2021-01-06 21:24:07顺序表结构体定义: typedef struct { int data[maxsize]; int length; }Sqlist; 二.单链表结构体定义: typedef struct LNode { int data; struct LNode *next; }LNode; 三.双链表结构体定义: typedef ... -
线性表的结构体定义
2018-05-12 19:54:091.线性表的结构体定义 1)顺序表的结构体定义typedef struct { int data[maxSize]; int length; } Sqlist; 2)考研中常用定义int A[maxSize]; int n; 3)单链表结点定义typedef struct LNode{ int data; //... -
C++ 结构体定义和使用
2019-08-01 16:41:061、结构体定义和使用 #include<iostream> using namespace std; #include<string>//使用字符串要添加的头文件,不然报错 //定义结构体:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型 ... -
结构体定义的 几种 方式
2020-01-10 13:57:53下面给出六种结构体定义,其中第一种是最基本的结构体定义,其定义了一个结构体A。 struct A //第一种 { int a; }; 第二种则是在定义了一个结构体B的同时定义了一个结构体B的变量m。 struct B //第二种 { int ... -
结构体定义的几种常见方式
2016-08-15 19:44:07下面给出六种结构体定义,其中第一种是最基本的结构体定义,其定义了一个结构体A。struct A //第一种 { int a; };第二种则是在定义了一个结构体B的同时定义了一个结构体B的变量m。struct B //第二种 { int b; }m;... -
dotnet 设计规范 · 结构体定义
2018-07-26 16:22:05本文告诉大家结构体定义需要知道的规范 -
C语言之玩转结构体1——结构体定义与声明
2020-04-18 18:47:49文章目录一、前言二、名词解释三、结构体声明四、结构体定义及初始化五、运行六、结语 一、前言 结构体作为C语言中的重要一环,可以用它来对数据进行封装,把一些相似的成员放在同一个结构体中,其对于代码的可维护... -
结构体定义的几种形式
2018-04-11 15:49:55最近一直研究结构体,整理几种结构体定义方式:1、最常用定义方式:定义结构体data,此时结构体相当于一个类型,比如int,如需使用此结构体,方法同intstruct data{ char aa; char bb; char cc; int dd;}; ... -
C语言-结构体定义的几种方式
2020-03-01 17:02:31C语言-结构体定义的几种方式 若struct后面接的是名字,则其为该结构体的名称。 第一种是最基本的结构体定义,其定义了一个结构体A。 struct A //第一种 { int a; }; 第二种则是在定义了一个结构体B的同时定义了一... -
c语言结构体定义 基础问题
2017-09-22 02:36:08``` #define DLL_IMPORT struct DLL_IMPORT student { int age; int sex; char* name ; }; ``` 请问下 DLL_IMPORT 这个宏加在结构体定义之前有什么作用? -
结构体定义-数据结构基础复习
2020-09-04 18:09:00结构体定义-数据结构基础复习 由于C语言学习过早,中间也没有强加复习,在学习数据结构的过程中遇到一些基础的问题,首先就是对结构体的定义模糊不清晰,经过网上资料查找和中国mooc视频学习,做出总结: 结构体定义... -
C语言用结构体定义复数,实现四则运算
2018-06-13 13:51:22C语言中没有复数运算,只有实数运行,为此,用结构体定义复数,并实现其四则运算 -
Nasm 结构体定义
2012-12-06 22:12:191. 结构体定义 在NASM内部,没有实际意义上的定义结构体类型的机制,NASM使用宏 STRUC 和 ENDSTRUC来定义一个结构体。STRUC有一个参数,它是结构体的名字。可以使用“RESB”类伪指令定义结构体的域,然后使用... -
结构体定义和使用
2019-01-22 20:57:02收获一:结构体的定义和使用 struct stu{ char *name; //姓名 int num; //学号 char sex; //性别 float score; //成绩 }; struct stu stu1, stu2; stu 就像一个“模板”,定义出来的变量都具有相同的性质。也可以... -
结构体定义、结构体指针、内存分配、指针、结构体形参的深入理解
2018-07-22 16:12:47/*********结构体定义、结构体指针、内存分配、指针、结构体形参的深入理解**** 作者: 攀枝花学院 袁伟明 邮箱:1040185409@qq.com 说明:此程序为深入学习数据结构时候,对于数据结构最重要的基础(结构体、指针、... -
结构体定义,初始化和赋值
2017-09-16 15:35:59结构体定义,初始化和赋值 -
C#结构体定义的详解
2011-10-17 11:26:19C#结构体定义的详解 2009-08-13 14:46 花花世界 百度空间 我要评论(0) 字号:T | T C#结构体定义是什么样子呢?也可以象类一样可以单独定义.C#结构体定义也可以在名字前面加入控制访问符,本文向...