zoukankan      html  css  js  c++  java
  • 12-14

    一.指针变量默认赋初值,如果没有没有初值的话给NULL。

    结构体指针->

    二.宏定义 #define

    define A B    //用A来代替B,执行B

    调试开关:

    #if 0         //非0即真

    #define Debug(x)printf("%s ",x)

    #else

    #define Debug(x)

    #enf if

    define kAdd(a,b)  ((a)+(b))优先级问题,所以要加括号

    例:

    print("%d",kAdd(2,3)/2)会先执行3/2

    三.枚举 enum

    宏定义与enum的区别

    宏:宏是一个值/表达式,不能当做类型看待

    枚举:枚举是一种类型,可以定义枚举类型的一个人变量。

    例如:struct animal{}括号中的不能当做类型来看待

    enum animal{}括号中的是一种类型

    四.内存分配

    自动分配内存:当定义以基本类型的变量的时候,系统会为这个变量自动分配内存,这个内存堆上。当作用域结束,系统会自动将这个内存回收。

    动态分配内存:开发人员自己向系统申请的内存空间,申请的内存位于栈上,当作用域结束之后,系统是不会自动收回内存的。如果不释放,就内存泄露了。

    ①什么时候需要动态分配?

    程序运行过程中,需要保存/记录相应的数据,但是又没有提前准备好内存,那么就需要临时动态分配内存。 

    使用函数: void *malloc(sizr_t);

    size_t:希望申请的内存空间(字节byte)

    void*:系统一开始不知道你需要存放什么数据,不同的数据需要的内存空间不一样,所以默认是给一个void*,泛指所有指针类型(char*,int*,struct),当在使用的时候必须将void*转化为相应的类型。如果没有申请成功,那么返回值为NULL。

    释放内存free(void*)

    注意:free 里面的参数必须是指针,这个指针指向的内存必须是动态分配的。

    //计算结构体内存空间

    原理:如果结构体内部拥有多种数据类型,那么以占据内存字节数最高的类型对其

    typedef struct{char *name;int age;}Person;//16

    char8占据8个字节,int 占据4个字节

    所以 age变量自动向name对齐,整个占16个字节

    同种类型的按同种类型的算

  • 相关阅读:
    Sql server 2012 企业中文版安装图文教程
    sql server安装图解
    Unknown custom element: <swiper>
    CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
    在vue中使用animate.css
    linux配置jdk
    orcal解决锁表
    java 基础知识
    fastjson解析list ,object中含有list, object中含有map
    vue的周期函数
  • 原文地址:https://www.cnblogs.com/liuzhicen/p/5046200.html
Copyright © 2011-2022 走看看