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

Linux C语言结构体

雷过就跑 移动开发工程师
难度初级
时长 1小时30分
  • 左移<<:

    高位丢弃,低位补零  

    实现2倍乘运算: 左移n位就是将数值*2的n次方

    注意:如果数据类型为有符号型,由于高位丢弃,发生溢出

    查看全部
  • 异或:两者相斥才为1

    符号:^

    应用:

    按位反转:a^0xFF

    实现数值交换:a=a^b;b=b^a,a=a^b


    查看全部
  • 16进制数0xFF=1111 1111=255


    查看全部
  • 按位与判断奇偶性:

    a为偶数:a&1 == 0

    a为奇数:a&1 != 0


    查看全部
  • 位 0 false 1 true

    &按位与,整型或字符型,补码

    a=4;00000000000000000000000000000100

    b=7;00000000000000000000000000000111

    a&b=00000000000000000000000000000100=4

    迅速清零a&0=0


    查看全部
  • malloc分配内存块的函数

    sizeof判断数据类型的长度符


    查看全部
  • 共用体:

    1、不同数据类型的变量共享一个内存地址

    2、该结构体所占实际内存为最大的成员所占

    3、关键字union

    union data{

    ..

    ..

    }

    union data data_1

    查看全部
    1 采集 收起 来源:Linux C公用体

    2020-02-17

  • 如何对结构体进行初始化和访问结构体成员:

    1、初始化 在花括号内 对结构体内变量成员依次赋值即可

    struct weapon weapon_1 = {"w_name",100,200};

    2、访问结构体成员:使用运算符.

    :weapon_1.name,weapon_1.price//根据初始化的内容,=200


    结构体数组:struct weapon weapon_2[2];

    初始化就依次就好了:http://img1.sycdn.imooc.com//5e4900810001a66d08560036.jpg


    查看全部
  • 结构体:

    写在 main()函数之前

    结构体是不同类型变量的集合(与数组很不同)

    例子:

    写一个武器的结构体类型

    首先使用关键字struct 

    struct weapon{

        char name[20];

        int atk;

        int price;

    };

    在int main(){中使用这个数据类型

    struct weapon 变量名;

    如果要使用结构体数据类型作为全局变量,可在写struct的时候在}后写变量名然后;。

    比如:

    struct weapon{

        char name[20];

        int atk;

        int price;

    }weapon1;


    查看全部
  • typedef 与#define作用域不同:

    #define如果写到了自定义函数里面,在这函数外面还是可以使用的

    但typedef就不行了。

    查看全部
  • 定义 结构体

    struct stu{

    }

    在使用这个结构体的时候麻烦

    :struct stu xxx;

    所以常常这样写

    typedef struct stu{

    }stu_t;

    之后通过 stu_t xxx;创建结构体


    查看全部
  • 与宏相近的语法:typedef(type define) 

    作用:给变量类型起别名,当你感觉某变量名别扭,甚至数据类型名别扭时。。经常用在给自定义的数据类型起名字

    比如数据类型size_t实际是系统用typedef语法处理了

    typedef unsigned long size_t

    注意:宏#define 眼里是没有C语法的,所以不以分号结尾。

    但typedef是C 需要以;结尾

    注意:typedef int *p意义是:int *=p,所以p q=指针q

    区别:在经过预处理后 typedef起的别名是不会替换回去的


    查看全部
  • 预处理过程其实还有一个条件编译的功能:可以根据不同的条件,编译不同的程序部分从而产生不同的目标代码文件,对程序的移植和调试很有用

    查看全部
  • 注意:

    1、宏定义是完全字符串替换 所以这里 a+b加个()。防止一些意想不到的错误。

    2、但也有好处 :都是实现求和,定义函数求和对变量的数据类型只能与写函数的时候保持一致,而宏定义实现求和没有这个.

    http://img1.sycdn.imooc.com//5e48fa1f0001795a02740057.jpg


    查看全部
  • 宏也有函数形式,可以有参数,参数可以是代码里面定义的变量 :

    #include<stdio.h>

    #define R 20

    #define N(n) n*10

    int main(){

         int a=R;

         int b=N(a)//打印b 会发现b=20*10=200

    查看全部

举报

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

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