为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Linux C语言结构体_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言结构体

雷过就跑 移动开发工程师
难度初级
时长 1小时30分
  • 公用体 union: 1、让几个不同类型的变量 共享同一个内存地址 2、优点:节省开销;缺点:同一时刻 只能存储一个成员 3、所以初始化列表中只能有一个常量 4、所占内存长度是所有成员中内存长度最长的那个 #include <stdio.h> union data{ int a; char b; char c; };//该公用体占4个字节 int main() { union data data_1;//创建对象data_1 data_1.b='c'; data_1.a=10;//后面被赋值的成员才是真正起作用的成员 printf("%p\n,%p\n,%p\n",&data_1.a,&data_1.b,&data_1.c);//打印各个成员的地址,结果是一样的 return 0; }
    查看全部
    0 采集 收起 来源:Linux C公用体

    2018-03-22

  • 结构体指针 例子: struct weapon *w; w=&weapon_1; printf("name=%s\n",(*w).name);//*w表示w指向的结构体变量,*w.name表示w所指向的结构体变量的name成员 //(*w).name 中的括号不能省略,因为.运算符优先级高于* //(*w).name === w->name === weapon_1.name 【->指向运算符】 结构体指针指向结构体数组 struct weapon weapon = {"weapon_name",100,200}; printf("%s,%d\n", weapon.name,++weapon.price); struct weapon weapons[2] = { {"weapname1",50,100},{"weapname2",100,200 } }; printf("%s,%d\n", weapons[0].name, weapons[1].price); struct weapon *w=&weapon; printf("%s\n", w->name); struct weapon *p; p=weapons;//p指向结构体数组第一个元素的地址 p->name weapons[0].name printf("%s\n", p->name); p++; printf("%d\n", p->price);
    查看全部
    0 采集 收起 来源:结构体指针

    2018-03-22

  • 定义结构体数组 //数组里包含两个结构体元素,每个元素有结构体里的三个成员 struct weapon weapon_2[2]={{"weapon_name1",50,100},{"weapon_name2",100,200}}; printf("%s\n,%d\n",weapon_2[0].name,weapon_2[1].atk);
    查看全部
  • 结构体的初始化和引用
    查看全部
  • 结构体的初始化和引用 初始化:使用{} 引用:使用. .是成员运算符,在所有运算符中优先级最高
    查看全部
  • 结构体:不同类型变量的集合 结构体的声明和定义的三种方法 1.声明和定义分离 struct weapon{ char name[20]; int atk; int price; }; //创建结构体类型,没有数据,没有分配内存空间 struct weapon weapon_1; //定义 (结构体名)(类型名)(变量) 2.同时进行声明和定义,只适用于简单的程序 struct weapon{ char name[20]; int atk; int price; }weapon_1;//定义了一个全局变量 3.不声明类型名,只能定义一次这种类型的结构体 struct{ char name[20]; int atk; int price; }weapon_1;
    查看全部
  • typedef:关键字,作用是给变量类型取别名,以分号结尾 eg1: typedef int tni;//给int取别名tni eg2: typedef int *p;//给int*取别名为p 再定义指针变量q时可直接写 p q=NULL; typedef通常给自己自定义的数据类型起别名 typedef有作用域 例子: typedef struct stu{ }stu_t;//给stu结构体取别名stu_t
    查看全部
  • 预处理阶段进行宏替换时,只是单纯字符串的替换,不进行计算 宏替换不考虑C的语法,也就不考虑数据类型,都看成字符串处理
    查看全部
  • C语言中的6种位运算符
    查看全部
  • 编译的四个步骤:预处理(展开头文件)、编译、汇编、链接
    查看全部
  • 左移N位,高位丢弃,低位补0,得到的 新值 = 原值*2^N,左移的运算速度比乘法高很多,因此可以用左移运算获得较高的乘法运算 右移 n 位,就是除以2 的 n 次方
    查看全部
  • test22222nopic
    查看全部
  • testtest~
    查看全部
  • .i就是展开stdio.h的头文件
    查看全部
  • 宏替换发生在预处理阶段,只是进行单纯的字符替换; 宏函数不考虑C语言语法,函数返回值类型没有限制,函数参数类型也不受限制。
    查看全部

举报

0/150
提交
取消
课程须知
本课程为C语言的中级课程 1、需要有一定的C语言基础,如有基础薄弱的童鞋可以看一下网站上其他3门C语言的课程 2、因在Linux环境下,需会一些Linux下的命令,可以看一下《Linux C语言编程原理与实践》此课。
老师告诉你能学到什么?
1、预处理是干什么的 2、结构体是什么 3、公用体是什么 4、位运算是怎么回事 5、如何实现动态数据结构体 6、递归的原理
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!