设为首页 加入收藏

TOP

C语言中基础小问题总结(四)
2013-10-14 09:07:35 来源: 作者: 【 】 浏览:715
Tags:言中 基础 问题 总结

 

  (2)共用体

  共用体不能作为函数的参数和返回值

  共用体不能同时存放,每一时刻只能存放一个成员,以最后一次存放的成员为有效成员。共用体的大小是最大元素所占用的大小;

  共用体可以出现在结构体类型中,反之,结构体也可以出现在共用体的类型中

  25、枚举类型

  enum color {red,green,blue};

  enum color c=red;

  int i=red;//值为0

  26、类型标识符的重定义

  c语言中用关键字typedef来声明新的类型名

  typedef int INTEGER;

  INTEGER x,y;

  等价于

  int x , y;

  又比如结构体定义:

  typedef struct

  {

  int num;

  char name ;

  float score;

  }student;

  student  stu1, stu2, *s;

  另外,typedef只是进行类型重定义,只是为该类型命名一个别名,并不产生新的数据类型

  27、位运算

  包括(与、或、异或、取反)。

  其中,位运算符进行运算时,数都是以补码形式参加运算,且符号位参与运算。

  异或:相同为0,不同为1

  a^a=0;a^0=a;a^~a=1;

  此处可以用异或来实现两数的交换

  a=a^b;

  b=b^a;

  a=a^b;

  这样避免引入临时变量

  28、移位运算

  (1)a《b,表示a的二进制值左移b位

  (2)a》b,表示a的二进制值右移b位

  移位运算具体实现有3种形式:

  (1)循环移位:移入的位等于移出的位

  (2)逻辑移位:移出的位丢失,移入的位取0

  (3)算术移位:移出的位丢失,左移入的位取0,右移入的位取符号位,符号位保持不变

  C语言的移位运算与具体的C编译系统有关,如VC++6.0采用的是算术移位

  注意:移位操作并不会改变原操作数的值。例如a》2运算后,a的值保持不变,除非通过赋值a=a》2来改变a的值。

  29、文件

  (1)C语言中文件是字节流文件。

  (2)C中为用户定义的文件类型是FILE,FILE文件类型是结构体类型,FILE结构是用关键字typedef定义出的一种结构。

  struct  _iobuf

  {

  char * _ptr;

  int _cnt;

  char *base;

  int _flag;

  int _file;

  ……

  };

  typedef struct  _iobuf  FILE;

  (3)文件打开与关闭

  文件指针 = fopen("文件路径\\文件名", "文件操作方式");

  操作方式分为r,w,a,r+,w+,a+

  如果fopen打开失败,则返回NULL

  如果缓冲区未满512B,那么不会写到磁盘中,万一程序异常终止,则缓冲区中数据丢失,导致文件不完整。只有对打开文件执行关闭操作时,才能强制把缓冲区中不足512B的数据写到磁盘文件中,保证文件的完整性。fclose函数用来关闭文件

  fclose(文件指针);

  返回值是一个整数值,若为0,表示正常关闭,否则表示无法正常关闭文件。

  (4)文件的输入和输出

  读写一个字符:char fgetc(文件指针);EOF fputc(字符,文件指针)

  读写一个字符串:fgets(字符串s,读入字符个数n,文件指针)--->在中途遇到\n或者EOF停止,读n-1个字符,在末尾加'\0';fputs(字符串,文件指针)--->字符串的结束标记不会写入文件

  格式化读写:fscanf(fp, "%d%s", &i, s)--->从文件中读取数据保存到变量;fprintf(fp, "%d%c", j, c)--->按指定格式向文件写入数据

  成块读写:fread(buffer,size,count,fp)和fwrite(buffer,size,count,fp)

  buffer是一个指针,fread()中表示存放"输入数据"的变量首地址,fwrite()中表示存放"输出数据"的变量首地址

  size表示数据块的字节数

  count表示数据块个数

  fp文件指针

  返回值都是count值

  (4)其他文件操作的函数

  feof(fp)判断文件的末尾标志,到达末尾返回1,否则返回0

  rewind(fp)用于定位,是文件的位置指针返回文件开头。

  fseek(fp, offset, base)用来控制文件内部位置指针移动。base是位置移动的基准点。offset是偏移量

  ftell(fp)用于获取位置指针的位置,相对于文件开头。

        

首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言define用法详解 下一篇C语言陷阱:浮点运算

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: