培训 学习总结(C语言)

来源:互联网 发布:网络诈骗手段的是 编辑:程序博客网 时间:2024/04/28 14:26
一 关于内存使用与释放的问题1.内存的使用要慎重,在申请之前需要注意,不要忘记嵌入头文件:#include。在使用堆空间时,如使用scanf函数输入函数,不要忘记堆缓冲区的清除,否则程序容易产生死循环,即使用语句:fflush(stdin)。2.注意区别malloc()与calloc() 的区别malloc():申请空间,内存分配的空间为连续的大小的空间,大小为该函数形参size字节内存单元,内存单元没有类型。calloc():申请空间为第一个形参指定的几个小块,空间大小一致,并且赋初值了3.对于内存和指针内存释放不代表指针消亡,反之同样。所以,在释放内存的时候,记得将指针置空,否则容易产生野指针。二 输入输出函数相关问题1.对于printf() 函数和scanf()函数原型需要知道:int printf(const char *,…) int scanf (const char *,…)此处可以知道,输入输出函数对字符没有限制。2. scanf()注意事项:scanf()默认不采集空格、回车、跳格这些空白字符,在使用%C时候例外。%[指定可输入字符集] %[^指定可输入字符集] 3.printf输出格式注意:%ld ------long %hd-------short %u-------unsigned int %o,%#o------输出为八进制 .n------对实数,指定小数点后位数(四舍五入)【注】使用printf函数时,格式控制符一定要与变量类型匹配!单个字符的输入输出函数: 1.单个字符输出函数putchar 2. 单个字符输入函数getchar 函数原型:char * gets(char *); int puts(const char *);【注】gets对当指定的空间不够存储要输入的字符串时没有任何拦截,推荐使用fgets 函数原型:char *fgets( char *string, int n, FILE *stream );最多可读入n-1个字符,最后一定是’/0’结尾。 有空闲位置则可包括’/n’ 4. 文件读写字符读写函数 :fgetc和fputc int fgetc( FILE *stream );--从文件流中读一个“字符” int fputc( int c, FILE *stream );--往文件流中写一个“字符” 字符串读写函数:fgets和fputs char *fgets( char *string, int n, FILE *stream );--从文件流读字符串 int fputs( const char *string, FILE *stream );--写字符串到文件流 数据块读写函数:fread和fwrite size_t fread( void *buffer, size_t size, size_t count, FILE *stream );---- 从一个流中读取数据块size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); ----写数据块内容到流中 格式化读写函数:fscanf和fprinf int fprintf( FILE *stream, const char *format [, argument ]...); ------格式化输出到一个流中 int fscanf( FILE *stream, const char *format [, argument ]... );------- 从一个流中执行格式化输入feof函数功能 int feof( FILE *stream) -------文件末尾判断ftell函数返long ftell( FILE *stream ); ――――――――回文件位置指示器的当前值rewind函数void rewind( FILE *stream );---------- fp文件位置指针指向文件首fseek函数 int fseek( FILE *stream, long offset, int origin ); ------把读写的位置指示器移到指定的位置。【注释】文件开始:SEEK_SET 0  文件开始:SEEK_CUT 1  文件开始:SEEK_END 2  三 数组相关问题1..数组是内存中连续存储的有相同类型的数据的有序集合,是一种构造类型【注释1】 数组名代表数组首地址,一定是个常量,不可以进行运算。C语言规定数组不能以整体形式参与数据处理,只能逐个使用数组元素【注释2】 对数组进行间接访问:首*(首地址 + 偏移) 间址运算符*,用地址访问元素【注释3】 在C语言中根本就没有多维数组,即将二维数组视为一个特殊的一维数组,它的每个元素都是个一维数组。【注释4】