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

Linux C语言结构体

雷过就跑 移动开发工程师
难度初级
时长 1小时30分
  • ^:按位异或<br> 应用: 1.a^0xFF //定位反转 2.数值交换:a = a^b; b = b^a; a = a^b; 运算法则是:同样就输出0,不同就输出1
    查看全部
  • 按位或("|")用途:设定数据的指定位
    查看全部
  • &运算常应用: 迅速清零 保留指定位 判断奇偶性 a & 1 = 1;则a为奇数 b & 1 = 0;则a为偶数 一字节 8位 a=4 的补码 00000000 00000000 00000100 若两个补码相加,则1+1=1.否则都为0;
    查看全部
  • 把链表想象成火车,节点就是其中一节节的车厢,通过通道和前后车厢相连。 因为节点中要包含数据、指向前后车厢的链接,所以一般是个复合型的结构体。
    查看全部
  • 建立动态链表: #include <stdio.h> #include <malloc.h> // struct weapon { int price; int atk; struck weapon * next;//指针变量 存放下一个节点地址 } // struct weapon * create(){ struct weapon * head;//头指针 struct weapon * p1,*p2;//p1 当前新创建节点,p2上一个节点 int n=0;//记录当前节点个数 //使用malloc函数(malloc分配内存块的函数,sizeof判断数据类型长度) p1=p2=(struct weapon *)malloc(sizeof(struct weapon));//使用malloc函数开辟第一个节点 scanf("%d,%d",&p1->price,&p1->atk);//第一个节点单独赋值 head = NULL;// //约定price为0,就不把节点链接入列表(结束) while(p1->price!=0){ n++ if(n==1) head=p1;//第一次时,指向头指针 else p2->next=p1; p2=p1 p1=(struct weapon*)malloc(sizeof(struct weapon));//开辟新的存储区 scanf("%d,%d",&p1->price,&p1->atk); } p2->next =NULL; return (head); } int main(){ struck weapon a,b,c, *head; p=create(); printf("",p->atk,p->price); return 0; }
    查看全部
  • 静态数据结构:整型,浮点型 ,数组。固定大小 动态数据结构:动态存储分配 链表:头指针head。节点。需要的实际数据,下一个节点地址。链表地址不连续 head->A (节点。需要的实际数据,下一个节点地址)->b ->p ->空 静态链表:所有节点在程序中定义,而不是临时开辟 #include <stdio.h> struct weapon { int price; int atk; struck weapon * next;//指针变量 存放下一个节点地址 } int main(){ struck weapon a,b,c, *head; a.price = 100; //1.1 内容初始值 a.atk = 100; b.price = 200; b.atk = 200; c.price = 300; c.atk = 300; //2 连成链表。 head = &a;//2.1 第一个节点地址赋给头指针head a.next = &b;// b.next = &c; c.next = NULL;//2.3 链表最后一个元素 指针变量为空 struct weapon *p;//借助指针P访问节点 p = head;//1.4 头指针 while(p!=null){ printf("",p->atk,p->price); p= p->next;//指向下一个节点 } return 0; }
    查看全部
  • 预处理 编译 汇编 连接
    查看全部
  • 结构体————内存大小 结构体所在内存大小设计字节对齐的问题,以空间换取时间,其目的是加快计算机执行速度。第一个成员变量的地址为该结构体的首地址,每一个成员变量地址距离首地址的内存长度叫偏移量,字节对齐,要求每一个结构体成员的偏移量是自身所占字节长度的整数倍,若不是整数倍则编译器会进行字节填充,使之“对齐”。在所有成员判断完成后,这还没完,还要判断目前该结构体的长度是否是最宽基础成员变量的整数倍,若否,则最后一个成员变量后面还要进行字节填充,若是整数倍则可得出该结构体所在内存单元的长度。 共用体————共享内存单元,一次只存一个成员变量(可是不同类型)。 关键字:union 共用体名{int a; char b; int c;}; 内存长度:等于成员变量中最长的一个的长度。
    查看全部
    2 采集 收起 来源:Linux C公用体

    2016-10-31

  • 数组:同类型的数据类型 结构体:可以有不同的数据类型
    查看全部
  • 结构体的声明和定义的三种方法 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关键字:作用 给变量类型取别名。预处理之后不会被替换(宏会被替换)。有作用域(宏没有作用域,全局)。 typedef int tni; typedef int *p;(给int * 定义别名p int *q; == p q;)
    查看全部
  • 20161013 LinuxC语言结构体 2-1 预处理 gcc -o helloworld.i helloworld.c 执行过程如下: .c文件 -> (预处理).i文件 ->(编译) .s文件 ->(汇编).o文件 ->(链接)可执行文件 gcc -o helloworld.i helloworld.c -E (只进行预处理,生成.i文件 ) 预处理: 1.展开头文件(如 展开 include <stdio.h>的内容) 2.宏替换:本质就是发生在预处理的单纯的字符串替换 注释 宏定义: 就是常量,数组buffer。不以分号结尾 #define R 10(此处 10为字符串) 宏函数特点:不考虑C语法 ,不受返回值类型限制。
    查看全部
  • 12
    查看全部
  • ^:按位异或<br> 应用: 1.a^0xFF //定位反转 2.数值交换:a = a^b; b = b^a; a = a^b; 原理:b = b^a^b -> a; a = a^b^a -> b;
    查看全部
  • 按位或用途:设定数据的指定位 b = b| 0xFF,能设定数据b的指定二进制数后8位置为1,即计算和b的十进制等于255
    查看全部

举报

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

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