代码改变世界

c学习笔记

2013-07-18 17:21  anjsoft  阅读(237)  评论(2编辑  收藏  举报

1、 printf("%d",sizeof(unsigned)); //4  = int 长度; 

     char 总是1Byte;  short  <= int <=  long ; short 和long 是int的变体,所有short/long 后面都有个int ,平时简写了 ; float<=double

const long debt =223,float aa=2.2;//const影响声明行中的所有变量
符号常量:#define , const
x = 6 = (y = 4 + 5 ) ; //OK

2、

struct{
    int a;
    int b;
    char ar[2];//char 型数组很特别,不足4个也要分占4个字节,此处ar[1],a[2],1[3],a[4] 结果一样,在vc6下是这样,其它没试过
}ss;

printf("%d",sizeof(ss)); //12

3、

char *p = "anjun"; //求指针所指字符串长度,用strlen,

printf("%d\n",strlen(p));

4、全局变量默认为0

外部静态变量,只对所在文件有效,且在定义之后的可见。extern 无法引用

5、按值传递:基本类型和结构;数组只能引用传递

6、struct tm* localtime(time_t  *ptr);//转换

      time_t mktime(struct tm* ntime);//转换

      char* asctime(struct  tm *ptr);//显示

     char * ctime(time_t *ptr);//显示

     size_t strftime( char *s , size_t max ,char *fmt ,struct tm* ptr);//格式化时间

    double difftime(time_t later, time_t earlier); //计算时差

   clock_t clock(void);//返回开始执行起到现在的时间,单位为1/100秒

7. void assert(int  expression); //assert.h中,只启用debug才有用

void perror(const char *msg);//errno.h

8、bsearch/qsort

9、memmove 完美代替memcpy//内存块有重叠一定要用memmove

10、cl /E program.c > xx.xx//编译器预处理