中级C语言重点

一 关于内存使用与释放的问题 

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】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值