zoukankan      html  css  js  c++  java
  • C the basics (array, complex)

    数组:

    只有初始化定义才能 arr = { 0 }; 

    memset(a,0,sizeof(a)); 是中途清零的方法。

    结构体:

    typedef struct namex {  }name; 会创建一个name类型的结构体,也可用name进行类型定义,但是不可以定义指针,仍需要用struct name* 定义 。

    重要小结:结构体中的只指向自身的指针需用 struct COMPLEX* 定义。

    typedef struct SELF_REF { ///直到结尾才会完成定义,中途无法使用定义。
            int a;
            SELF_REF* b;/// should be" struct SELF_REF* b; "
            int c;
        }SELF_REF;

    COMPLEX* -> member name

    struct COMPLEX{ int a; char b; char c };  最大限度地节省空间。

    作为函数参数的结构:

    将函数名传入函数的参数中可以得到成功的结果,但是非常的低效,因为C会在调用过程中先拷贝一份。以下是一个更好的方案:

    void fun (COMPLEX* C){
        C -> member_name;///以这种形式访问并使用。
    }
    
    fun(&COMPLEXTYPE);///以这种形式调用函数。
    
    为了防止结构体被修改,也可:
     void fun (COMPLEX const *C)
    
    当要多次使用输入的指针访问结构体时,可以定义为寄存器变量:
    void fun (register COMPLEX const *C) 

    函数内不可定义函数。

  • 相关阅读:
    Mysql数据库分库备份,分表备份
    KICKSTART无人值守安装
    git的使用
    iowait 过高问题的查找及解决linux
    Redis配置文件redis.conf详解
    安装和使用ZFS
    GlusterFS配置及使用
    Ceph与Gluster之开源存储的对比
    去掉Tomcat的管理页面
    Tomcat不加项目名称访问设置
  • 原文地址:https://www.cnblogs.com/porest/p/14103563.html
Copyright © 2011-2022 走看看