标签:
2015年4月23日 星期四
第3章 数据
第4章 语句
第5章 操作符和表达式
2015年4月24日 星期五 四体不勤
第6章 指针
char ch=‘a‘; char *p=&ch;
&ch, cp, *cp, &cp, *cp+1, *(cp+1), ++cp, cp++, *++cp, *cp++,
++*cp, (*cp)++, ++*++cp, ++*cp++
第7章 函数
第8章 数组
数组名,下标引用,指针和下标,指针的效率,数组和指针,作为函数参数的数组名,声明数组参数,初始化,不完整的初始化,自动计算数组长度,字符数组的初始化
char message[]="hello"; /*字符数组初始化*/ char *message="hello"; /*字符串常量*/
存储顺序,数组名,下标,指向数组的指针,作为函数参数的多维数组,数组长度自动计算
/*函数的声明*/ void func1(int (*mat)[10]); void func2(int mat[][10]); /*数组的初始化*/ int matrix[2][3]={100,101,102,110,111,112}; int two-dimen[3][5]={{00,01,02,03,04},{10,11,12,13,14},{20,21,22,23,24}}
字符串的列表存储:矩阵存储(二维数组),指向字符串常量的指针数组
2015年4月25日 星期六 天气晴
life is not all great,keep vigilant.
第9章 字符串、字符和数组
/*字符串复制函数原型*/ char *strcpy(char *dst,const char *src);/*无法解决字符串比dst数组长的问题*/ /*字符串连接函数*/ char *strcat(char *dst,const char *src);/*与strcpy一样,程序员使用函数前,需要保证数组足以容纳src字符串*/ /*字符串比较函数原型*/ int strcmp(char const *s1,char const *s2);/*s1<s1,return negative,s1=s2,return 0,s1>s2,return positive*/
char *strncpy(char *dst,char const *src,size_t len);/*如果src的长度大于len,只有len个字符会被复制到dst,且不会以nul字节结尾*/ char *strncat(char *dst,char const *src,size_t len); int strncmp(char const *s1,char const *s2,size_t len);
查找一个字符,使用strchr和strrchr函数,原型如下
char *strchr(char const *str,int ch); /*在str中查找字符ch第一次出现的位置,找到后返回指向改位置的指针*/ char *strrchr(char const *str,int ch); /*返回指向字符最后一次出现的位置*/
查找任何几个字符,strpbrk函数查找任何一串字符第一次出现在字符串中的位置
char *strpbrk(char const *str, char const *group); char string[20]="hello world"; char *ans; ans=strpbrk(string,"aeiou"); //ans所指向的是string+1,即e的位置
查找一个子串,使用strstr函数,原型如下,在s1中查找s2第一次出现的起始位置
char *strstr(char const *s1,char const *s2);
查找一个字符串前缀,strspn->返回str中连续匹配group中任意字符的字符数,strcspn->返回不与group中字符匹配的字符数
查找标记,char *strtok(char *str,char const *sep);sep定义了用作分隔符的字符集合
char *strerror(int error_number);
ctype.h头文件,对单独字符的操作
字符分类操作,转换字符操作
/*与strn带头的函数类似,但它们在遇到NUL字节时并不会停止操作*/ void *memcpy(void *dst,void const *src,size_t length); void *memnove(void *dst,void const *src,size_t length); void *memcmp(void *dst,void const *src,size_t length); void *memchr(void const *a,int ch,size_t length); void *memset(void *a,int ch,size_t length);
2015年4月26日 星期日 10:30 天气晴
第10章 结构和联合
结构声明,struct tag{member-list}variable-list;
结构成员,可以是标量,数组,指针和其他结构
结构成员的直接访问,点操作符(.)访问
结构成员的间接访问,(->),左边必须为指向结构的指针
结构的自引用,指针形式,链表和树的结构都使用自引用
不完整的声明,结构的初始化
访问指针,访问结构,访问结构成员,访问指针成员
联合中成员引用的是内存中相同的位置,初始化初始值必须为联合中的第一个成员
第11章 动态内存分配
a.忘记检查所请求的内存是否分配成功
b.操作内存是超出分配内存的边界
c.内存泄露
第12章 使用结构和指针
2015年4月27日 星期一 13:56 早上误
第13章 高级指针话题
/*搞清楚以下声明的含义*/ int f; /* 一个整型变量 */ int *f; /* 指向整型的指针 */ int f(x); /* 返回值为整型的函数 */ int *f(x); /* 声明了一个函数,它的返回值是一个指向整型的指针 */ int (*f)(); /* 声明了一个函数指针,它所指向的函数返回一个整型 */ int *(*f)(); /* 声明了一个函数指针,它所指向的函数返回值是一个整型指针 */ int f[]; /* f是一个整型数组 */ int *f[]; /* f是一个数组,它的元素类型是指向整型的指针 */ int f()[]; /* 非法声明,函数只能返回标量值,不能返回数组 */ int f[](); /* 非法声明,数组元素必须具有相同的长度 */ int (*f[])(); /* f是一个数组,数组元素是函数指针,它所指向的函数返回值是一个整型*/ int *(*f[])(); /*f是一个指针数组,数组元素是函数指针,函数返回值是整型指针*/
两个用途:转换表和作为参数传递给另一个函数
字符串常量出现在表达式中,它的值是一个指针常量。
"xyz"+1 表示指向y的指针
*"xyz" 间接访问结果为x
"xyz"[2] 的值为z
第14章 预处理器
标签:
原文地址:http://www.cnblogs.com/sherPur/p/4545817.html