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

Linux C语言结构体

雷过就跑 移动开发工程师
难度初级
时长 1小时30分
  • 共用体成员的地址是相同的

    union data{}
    
    printf("%p\n%p\n%p\n",&data_1.a,&data_1.b,&data_1.c);


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

    2019-03-05

  • struct weapon weapon_2[2] = {{},{}};
    // weapon_2 为 weapon 数组第一个元素的地址,故
    struct weapon * p;
    p = weapon_2;
    p->name // 相当于weapon_2[0].name
    p++; // 则相当于 weapon_2[1].name


    查看全部
    0 采集 收起 来源:结构体指针

    2019-03-05

  • struct stu{};
    // 使用
    struct stu xxx;
    
    //通过别名
    typedef struct stu{
    } stu_t;
    stu_t xxx; // 与上上面的一致


    查看全部
  • typedef 相当于给类型取一个别名

    typedef int tni;
    tni a = 0; // int a = 0;
    
    typedef int* p;
    p q = NULL; //int *q = NULL;


    查看全部
  • #define N(n) n*9
    //则
    int a = 10;
    int b = N(a);  // int b = a*9
    
    #define ADD(a,b) a+b // 加括号保险,故
    #define ADD(a,b) (a+b)
    //
    int x;
    int y;
    int b = ADD(x,y); // x+y


    查看全部
  • https://img1.sycdn.imooc.com//5c499d1d00016ddf10200625.jpg

    结构体的初始化和引用:

    ******************

    #include <stdio.h>
    struct weapon{
     char name[20];
     int atk;
     int price;
    };
    int main(){
     struct weapon weapon_1={"weapon_name",100,200};
     printf("%s\n,%d\n",weapon_1.name,weapon_1.price);
     int a[2];
     struct weapon weapon_2[2]={"weapon_name1",50,100,"weapon_name2",100,200};
    // 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);
     return 0;
    }

    *******************

    weapon_1.name:成员变量

    34行:初始化一个武器结构体对象
    35行:访问这个结构体对象中某一个成员的值(使用“.”运算符)
    .运算符在所有运算符中优先级最高
    36、37行分别为:定义普通数组和结构体数组
    38行:输出的写法(当普通变量用就好了)

    查看全部
  • https://img1.sycdn.imooc.com//5c49955300017d5207550549.jpg

    结构体的定义和声明:

    ******************

    #include <stdio.h>
    struct weapon{
     char name[20];
     int atk;
     int price;
    }weapon_1;
    int main(){
     struct weapon weapon_1;
     return 0;
    }

    ******************

    结构体是不同类型变量的集合
    数组是相同类型变量的集合

    struct weapon :结构体类型的名字
    weapon_1:结构体变量的名字
    第一个{}里面:各个成员

    “}weapon_1;”和“struct weapon weapon_1;”等价(一般两种定义方法)
    13行-使用类型的名字去定义:声明和定义分离的形式(最常用)
    11行-直接在声明的时候去定义(程序不便于维护)

    查看全部
  • 原理:利用相同的数异或必为0,异或满足交换率和任何数和0异或都等于本身。

    比如:

    1.a=a^b;

    2.b=b^a=b^(a^b)=b^b^a=0^a=a;

    3.a=a^b=a^(b^a)=b^a^a=b^0=b;

    查看全部
  • 递归:在函数调用过程中被调用的函数调用它本身的一个过程

    查看全部
  • 链表:能够动态存储数据的数据结构

    静态链表的节点均在程序中进行编译

    原理:head->1,和2的地址->2,和3的地址->…………->n,和NULL. 每次若需访问第n个数据必须知道前一个数据的地址再找到该数据的地址

    查看全部
  • 若要指向结构体中的任意一个变量,有如下四种方法:

        e.g struct weapon weapon_1{"weapon name"}

    1. weapon_1.name

    2. struct weapon (*w); w =&weapon name;  (*w).name;

    3. struct weapon (*w); w =&weapon name;   w->name;

    4. struct weapon *p; p=weapon_2;(指针访问该数组第一个数据的位置)

    查看全部
    0 采集 收起 来源:结构体指针

    2019-01-02

  • 因为结构体数组名本身就是指针地址 所以赋值给指针时 前面不用加&

    查看全部
    0 采集 收起 来源:结构体指针

    2018-12-31

  • 预处理对宏只会做字符串替换,不是语法,运算

    查看全部
  • C编译步骤

    查看全部
  • 结构体指针

    指向结构体的指针e.g struct weapon *w;

    w=&weapon_1;

    printf("name=%s\n", (*w).name/w->name/weapon_1.name);

    weapon_2既为一维数组(其中包含两个结构体各为两个数组中的元素),又为指向该数组中第一个元素的指针。





    查看全部
    0 采集 收起 来源:结构体指针

    2018-12-26

举报

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

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