C程序设计语言

[TOC]

类型、运算符与表达式

  1. char字符型占用一个字节。int整型,反应整数的最自然长度。

  2. 常量定义

    #define MAXLINE 1000
    
  3. 字符常量’\0’表示值为0的字符,也就是空字符null。字符串内部使用’\0’作为字符串的结尾,因此,存储字符串的物理存储单元数比括在双引号中的字符数多一个。

  4. 单引号双引号的区别,’x’是一个整数,其值是字母x在机器字符集中对应的数值;”x”是一个包含一个字符以及一个结束符’\0’的字符数组。

数组和指针

  1. p=&c &用于取一个对象的地址,只能应用内存中的对象。p为指向c的指针。
  2. int *p;

    p=&x; p现在指向x

  3. y=*p;y的值为指针p指向的对象的值。*为间接寻址或者间接引用运算符。

  4. int getint(int *p);参数是一个指针

    int getint(&a);使用时用&a取地址

  5. int a[10];定义了一个长度为10的数组,存在相邻内存的地方

    int *pa;

    pa=&a[0];pa指向a[0]的地址

    *(pa+i)≡a[i];pa+i指向a[i]的地址

    pa≡a;数组名代表数组第一个元素的地址

    a[i]≡*(a+i);

    &a[i]≡a+i;

    把数组名传给一个函数时,实际传递的是数组第一个元素的地址。

    int strlen(char *s)等价于int strlen(char s[])

  6. 字符串常量是一个字符数组(char a[]),字符数组以”结尾,占有的存储单元数比双引号内的大1

  7. char *p;

    p=”a man”;把该字符的指针赋值给p

  8. char a[10];定义一个字符串,长度为10

    char a[];

结构

  1. struct point  { //分别是引入结构申明,结构标记  
        int x; //成员  
        int y;  
    };
    
  2. struct {…} x,y,z;这个就类似于int x,y,z;这儿前面的部分相当于申明类型是结构,这儿也可以没有结构标记

  3. struct point pt;前面两个代表类型,后面的pt是变量,和上面相比,代替{…}的部分

  4. struct point pt={100,200};

  5. pt.x;用来应用其中的成员x

  6. struct point pt(int x, int y)  
    {  
        struct point temp;  
        …  
        return temp; 
    }
    

    函数返回struct point类型数据

  7. struct point *pp; pp为指向struct point类型的指针

  8. (*pp).y 这样来取成员是因为.的优先级大于*

  9. pp->x;相当于(*pp).y 这样也是去成员的一个办法,这两种分别是结构和结构指针取成员的方法。

  10.  struct key {  
         char *word;  
         int count;  
     } keytab[NKEYS] 
    

    结构数组,数组的每一个值都是一个完整的struct key类型

  11.  struct key {  
         char *word;  
         int count;  
     } keytab[]={  
         {“auto”, 0},  
         {“break”, 0},  
         ……  
     };
    

    赋值

  12.  struct tuode {  
         char *word;  
         int count;  
         struct tuode *left;  
         struct tuode *right;  
     };
    

    自引用结构,一般二叉树用类似结构

  13. typedef int length;使length与int同义。

    typedef声明不创建某个类型,只增加新名称

  14. typedef struct tuode *treeptr;treeptr被定义为一个指向该指针结构的指针

  15.  typedef struct tuode {  
     ……  
     } 
    

    treenode;则treenode同价struct tuode,有treenode a;则是申明一个该结构的a

  16.  union u_tag {  
         int uval;  
         float fval;  
     } u;
    

    联合

← 位运算  PHP的一些底层笔记 →