欢迎来到天天文库
浏览记录
ID:41032448
大小:3.26 MB
页数:90页
时间:2019-08-14
《C语言编程精髓总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《C和指针》《C专家编程》《C陷阱与缺陷》《C语言编程要点》《编程精粹--Microsoft编写优质无错C程序秘诀》总结说明:总结的知识点主要源于上面的4本书,《编程精粹--Microsoft编写优质无错C程序秘诀》这本书未做总结,该书有清晰版的pdf格式的电子版。--wuliming--2007-04-25wuliming_sc@163.com指针和数组相关概念*************************************************字符与字符串的区别指针与数组1指针与数组2指针和数组的相同与不同用malloc为字符串分配存储空间时的注意事项作为常
2、数的数组声明(c缺陷与陷阱3.3节.在其它部分有包含该节的知识点,了解or略过)字符串常量用字符串常量初始化指针和数组二维数组下标操作的相关概念指向一维、二维数组的指针array_name和&array_name的异同数组作为函数的参数时,不能通过sizeof运算符得到该数组的大小用strlen()求字符串的长度‘char**’和‘constchar**’的兼容性问题空指针相关的问题NULL和NUL的区别未初始化的指针和NULL指针的区别理解函数的声明函数参数的传值调用函数指针作为函数参数的多维数组强制类型转换相关概念可变参数相关问题malloc()、calloc()、re
3、alloc()在程序退出main()函数之后,还有可能执行一部分代码吗?总线错误和段错误相关概念数字和字符串之间转换相关的函数*************************************************怎样判断一个字符是数字、字母或其它类别的符号?怎样将数字转换为字符串?怎样将字符串转换为数字?字符串以及内存操作相关函数*************************************************字符串拷贝和内存拷贝函数:strcpystrncpymemcpymemmovememccpybcopy字符串和内存数据比较函数:strcm
4、pstrcasecmpstrncasecmpmemcmpstrcollbcmp连接字符串的函数:strcatstrncat查找字符/字符串的函数:strstrstrchrstrrchrmemchr其它相关的函数:indexrindexstrlenstrdupmemsetbzerostrspnstrcspnstrpbrkstrtok数据结构及算法相关函数qsort()bsearch()lsearch(线性搜索)lfind(线性搜索)srand(设置随机数种子)rand(产生随机数)OTHER*******************************************
5、******什么是标准预定义宏?断言assert(表达式)相关概念连接运算符“##”和字符串化运算符"#"有什么作用?注释掉一段代码的方法Typedef相关概念=不同于==词法分析中的“贪心法”运算符的优先级问题变量的存储类型及初始化相关概念左值和右值相关的概念变量的值和类型相关的概念怎样删去字符串尾部的空格?怎样删去字符串头部的空格?怎样打印字符串的一部分?结构的自引用结构的存储分配边界计算与不对称边界整数溢出返回整数的getchar函数更新顺序文件随机数的相关概念用递归和迭代两种办法解fibonacci字符与字符串的区别(c缺陷与陷阱1.5节)#include6、o.h>intmain(){charch='abcdefghijklmnopqrstuvwxyz';charstr[]="abcdefghijklmnopqrstuvwxyz";printf("-----%c-----%s",ch,str);return0;}编译该程序可以通过,但是会产生警告;输出结过为:-----z-----Abcdefghijklmnopqrstuvwxyz//在Dev-C++4.9.9.2编译环境中可以通过,但是在VC.0中通不过指针与数组1(c缺陷与陷阱3.1节)c语言中的数组值得注意的地方有以下两点:1、c语言中只有一维数组,而且数组的大7、小必须在编译期间就作为一个常数确定下来(C99标准允许变长数组,GCC编译器中实现了变长数组)。然而,c语言中数组的元素可以是任何类型的对象,当然也可以是另外一个数组。这样,要仿真出一个多维数组就不是一件难事。2、对于一个数组,我们只能够做两件事:确定该数组的大小,以及获得指向该数组下标为0的元素的指针。其他有关数组的操作,哪怕它们乍看上去是以数组下标进行运算的,实际上都是通过指针进行的。换句话说,任何一个数组下标运算都等同于一个对应的指针运算,因此我们完全可以依据指针行为定义数组下标的行为。现在考虑下面的例子:i
6、o.h>intmain(){charch='abcdefghijklmnopqrstuvwxyz';charstr[]="abcdefghijklmnopqrstuvwxyz";printf("-----%c-----%s",ch,str);return0;}编译该程序可以通过,但是会产生警告;输出结过为:-----z-----Abcdefghijklmnopqrstuvwxyz//在Dev-C++4.9.9.2编译环境中可以通过,但是在VC.0中通不过指针与数组1(c缺陷与陷阱3.1节)c语言中的数组值得注意的地方有以下两点:1、c语言中只有一维数组,而且数组的大
7、小必须在编译期间就作为一个常数确定下来(C99标准允许变长数组,GCC编译器中实现了变长数组)。然而,c语言中数组的元素可以是任何类型的对象,当然也可以是另外一个数组。这样,要仿真出一个多维数组就不是一件难事。2、对于一个数组,我们只能够做两件事:确定该数组的大小,以及获得指向该数组下标为0的元素的指针。其他有关数组的操作,哪怕它们乍看上去是以数组下标进行运算的,实际上都是通过指针进行的。换句话说,任何一个数组下标运算都等同于一个对应的指针运算,因此我们完全可以依据指针行为定义数组下标的行为。现在考虑下面的例子:i
此文档下载收益归作者所有