C 结构体零散知识点

1、结构体无法把自己作为成员,但可以包含指向自己的指针成员

2、定义不完整结构类型(类型,结构,占用空间无法确定,如void指针,声明没有指明数组长度数组)只能使用小标签,即struct struct_name定义其成员

3、匿名结构体时赋值时可使用 . 代表当前变量,指定特定成员值

    struct{int a; int b;} stu = {.a=1, .b=2};
    printf("%d\n", stu.a);//输出1
    stu.a = 123;
    printf("%d\n", stu.a);//输出123

如果结构体里再包含结构体,如下所示:

    struct{int a; int b; struct{int c; int d}in;} stu = {.a=1, .b=2, .in.d=5};
    printf("%d\n", stu.in.d);

此外结构体定义变量间分隔使用的是 ;

4、弹性结构成员,在结构体尾部声明一个未指定长度的数组成员,这种结构体一般以指针形式使用,在申请空间后,将指针指向其,并指定数组长度,为数组赋值,在对该结构体sizeof取值时,数组不计入,该结构体不可初始化

时间: 2024-10-12 14:04:41

C 结构体零散知识点的相关文章

传值传址。以及结构体的知识点 例题

一传值 传值:将变量名中存放的值进行传输 传值        public void Hanshu(int a)        {            a += 10;                    } 主函数里写 Program hanshu = new Program(); hanshu.Hanshu(a); _______________________________________________________________________________________

C++ 结构体深入理解

1. 结构体基础知识 有时需要将不同类型的数据组合成一个有机的整体,以供用户方便地使用.这些组合在一个整体中的数据是互相联系的.例如,一个学生的学号.姓名.性别.年龄.成绩.家庭地址等项,都是这个学生的属性,见图7.1. 图 7.1 可以看到学号(num).姓名(name).性别(sex).年龄(age).成绩(score ).地址(addr)是与姓名为“Li Fun”的学生有关的.如果在程序中将num,name,sex,age,score,addr分别定义为互相独立的变量,就难以反映出它们之间

结构体的一些小知识点

知识点:结构体 1. 结构体,其实就是一个自定义的集合,里面可以包含各种类型的数据 定义方法就是: struct student { public int no; public string name; public int Cshap; public int web; public int datebase; public int sum; } 以上语句就是定义一个名字叫做student的结构体,里面包含一个整形的NO,代表学号:一个字符串类型的name,代表名字:一个整形的Cshap,代表C

STM32——C语言知识点:指针、结构体

1 /* 2 ============================================================================ 3 Name : Cyuyanfuxi.c 4 Author : 5 Version : 6 Copyright : Your copyright notice 7 Description : Hello World in C, Ansi-style 8 ======================================

【Xcode学C-5】结构体、全局局部变量以及枚举变量的知识点

一.全局变量和局部变量 (1)全局变量定义在函数外,局部变量在函数体内,前后作用域不同,生命周期也不同. 二.结构体 (1)定义了结构体不会分配内存,只有用结构体定义了变量才会为这个变量分配内存.第一个成员的地址就是结构体变量的地址. int main(int argc, const char * argv[]) { //结构体的格式 struct person{ int age; char *name; }; //定义变量 struct person p1; //赋值,多种赋值方式,比如 st

从C过渡到C++须注意的几个知识点(结构体、引用、重载运算符)

一.结构体和类(class) 下面一个使用结构体类型的例子 1 #include <iostream> 2 using namespace std; 3 struct Point{ // 声明Point结构体类型 4 double x; // 成员变量,没有使用private和public时系统默认为公有类型成员变量 5 double y; 6 }; 7 int main() 8 { 9 Point p; // 定义的p在c里称为结构体变量 10 p.x = 3.2; // 因为x是公有类型可

C零散_摘自C程序设计_结构体中.和-&gt;区别

结构体操作中.和->的区别: 1 struct student { 2 char name[60]; 3 int age; 4 } 5 6 struct student stu1; 7 struct student *stu2; 8 9 stu2 = &stu1; 10 stu1.age = 10; 11 stu2->age = 10; 以上都是对stu1中的age赋值为10,所以.是面向于结构体变量操作符,->是面向于结构体变量指针的操作符.

C++知识点(四)类与对象,结构体、联合体、枚举类

对象:属性和行为:将同一类属性和行为抽象为类 1.面向对象的基本特点: 抽象:将同一类对象的共同属性和行为进行概括,形成类 封装: 将抽象出的数据.代码封装到一起,视为一个整体 增加安全性和简化编程 多态:同一名称.不同功能实现方式,减少标识符个数 继承:在已有类的基础上进行扩展,形成新的类,有利于代码重用 2.内联成员函数:类中声明定义,类外定义inline 3.构造函数: 用于对类的对象初始化,在对象创建时自动调用 没有return语句 可以有形参,可以无形参 可以是内联函数 可以重载 可以

结构体指针排序

输入不超过30名学生的信息,包括姓名,单科分数,出生年月,对其排序后输出. 运用知识点:结构体.指针.排序.函数. 1 #include<stdio.h> 2 #include<string.h> 3 4 struct birth 5 { 6 int y; 7 int m; 8 int d; 9 }; 10 struct student 11 { 12 int num; 13 char name[20]; 14 double score; 15 struct birth birth